CDを読み取ったけど、freedbとかコンフィグファイルから読み取れるはずのオーディオファイルのメタデータが取得できず、困ったりします。
それで仕方なく、リッピングしてwavやflacにしてみたけど、やっぱ曲名もなにも書いてなくて、”track 01″みたいな感じじゃ、わかりにくいし、管理もクソもないですよね。
そういう場合に使えるスクリプトを書いてみました。Bashとかのシェルスクリプトは他のライトウェイト言語と違う癖があって、少し複雑なもの書こうとすると結構時間取られるんですよねぇ…。
必要条件:ファイル名が何らかの形で連番していること(トラックナンバーが含まれているなど)
必要なもの:トラックナンバーに連動して新しいファイル名(タイトル)が一行ずつ書かれたファイル<<e.g.names.txt>>
e.g.
$ ls
01 Track01.flac 03 Track03.flac 05 Track05.flac 07 Track07.flac 09 Track09.flac 11 Track11.flac
02 Track02.flac 04 Track04.flac 06 Track06.flac 08 Track08.flac 10 Track10.flac 12 Track12.flac
$ cat > names.txt
01 - クレイジークレイジーダンサーズ
02 - 零次元エクスプレス
03 - Colors
04 - ARROW RAIN
05 - 真夏の蜜と唇
06 - 迷夢ソウル
07 - Princess Lily
08 - 抜刀
09 - Together Going My Way
10 - Addicted Moon
11 - Colorless
12 - 全力ハッピーライフ
エラー対処で一応実行 :sed -i $'s/\t//' names.txt
スクリプト
i=1
for f in *.flac ; do
name=$(sed "$(echo $i)q;d" names.txt)
mv "$f" "$name.flac"
i=$((i+1))
done
.flac
は.wav
とか適当なものに。
実行後
$ ls
01 - クレイジークレイジーダンサーズ .flac 04 - ARROW RAIN .flac 07 - Princess Lily .flac 10 - Addicted Moon .flac names.txt
02 - 零次元エクスプレス .flac 05 - 真夏の蜜と唇 .flac 08 - 抜刀 .flac 11 - Colorless .flac
03 - Colors .flac 06 - 迷夢ソウル .flac 09 - Together Going My Way .flac 12 - 全力ハッピーライフ.flac