phoenix-power便利なオプションあったら教えて下さい。

mplayer

pecoでディレクトリを選択し、それを再生します。出力は、~/Music/info.txtに保存します。

~/Music/script/mplayer_play.sh
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash

sea="ID_FILENAME"
dir1=$HOME/Music
rm -rf $dir1/*/.DS_Store >/dev/null 2>&1

dir2="$dir1/"`zsh -c "ls -A $dir1 | peco"`
pla=`mplayer -novideo -speed 2 -af scaletempo,volnorm -loop 20 -quiet -msglevel all=0 -identify $dir2/* > $dir1/info.txt`

#cat $dir1/info.txt | grep FILE | tail -n 1 | xargs basename | cut -b 1-6

rm $dir1/info.txt

再生中のファイル名を取得するのは簡単で、cat ~/Music/info.txt | grep FILE | tail -n 1 | xargs basenameでいけます。

例えば、出力を使って、4文字ごとに流すように取得してみます。

~/Music/script/mplayer_name.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash

dir=$HOME/Music
cha=`cat $dir/info.txt | grep FILE | tail -n 1 | xargs basename`
sum=`echo $cha | wc -c | tr -d ' '`

for (( i = 1; i < $sum; i=`expr $i + 4` ))
do
    a=`expr $i + 4`
    b=$i"-"$a
    cat $dir/info.txt | grep FILE | tail -n 1 | xargs basename | cut -b $b
    sleep 0.3
done

tmuxのステータスラインとかに流れるようにしたいのだけど、面倒くさそう…。forはそのまま使えず、数字を保存しておいて、1個ずつ実行していくしかないです。

やってみた感じ、微妙です。

~/Music/script/mplayer_tmux.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/bash

dir=$HOME/Music
cha=`cat $dir/info.txt | grep FILE | tail -n 1 | xargs basename`
sum=`echo $cha | wc -c | tr -d ' '`
fil=$dir/info.s

if [ -e $fil ]; then
    i=`cat $fil | tail -n 1`
    if [ $i -le $sum ]; then
        a=`expr $i + 4`
        b=$i"-"$a
        cat $dir/info.txt | grep FILE | tail -n 1 | xargs basename | cut -b $b
        echo $a >> $fil
    else
        cat $dir/info.txt | grep FILE | tail -n 1 | xargs basename | cut -b 1-4
        rm $fil
    fi
else
    cat $dir/info.txt | grep FILE | tail -n 1 | xargs basename | cut -b 1-4
    echo 1 > $fil
fi

一応、GIF、貼っておきます。