範囲の展開
良くダウンローダなんかで、file[001-029].jpgみたいな指定ができるけど、こういうのってshell上で使えないもんだろうか。多分どっかにありそうな気もするんだけど、とりあえずbashのmanだけみて、あきらめて作ることにする。なんで、こんなのが欲しいかというと、リッピングしたファイルを扱う時に、この手の連番ファイル操作に、うんざりするからだ。特に1CDに複数の曲が入っていると、連番の振り直しとかが必要で、面倒なこと、この上ない。で、最初はJavaで書いていたんだけど、やっぱり、こういうのはスクリプト言語ですな。
#!/usr/bin/ruby
print eval("(#{$*})").to_a.join(' ')
なんか一行で書けてしまうし... これをrangeという名前で格納。
$ range 1..5 1 2 3 4 5
よしよし。カレントのtrack01.flacからtrack05.flacを、/musicにコピーするには、これを利用してこうする。
$ for i in `range 1..5`; do cp track`printf %02d $(($i))`.flac /music/; done
応用編。カレントのtrack06.flacからtrack10.flacまでを、/musicにtrack01.flacからtrack05.flacという名前に変えてコピーするにはこうする。
$ for i in `range 6..10`; do cp track`printf %02d $(($i))`.flac /music/track`printf %02d $(($i-5))`.flac; done
UbuntuでCDリッピング
Exact Audio Copyのためだけに、Windows立ち上げるのも面倒になってきた。最初はVMWareでWindowsをゲストOSにして、なんとかならないかと考えた。ASUS P5KのIDEコネクタの位置の問題で、YAMAHAのCRW-F1を外してしまったんで、今は、これDO台でUSB接続。これが、なぜかVMWareからだと見えないので、Linux用のリッピングソフトウェアを探してみる。
どうやらcdparanoiaが、いいらしい。名前もステキだ。Synapticで見てみると、既にインストール済みのようだ。FAQ読むと、USBドライブはSCSIエミュレーションで認識するということなんで、デバイスマネージャを見てみる。
/dev/scd1として認識されているようなので、以下を実行。
$ cdparanoia -v -d /dev/scd1 -B
複数のトラックをまとめて、1つのwavにしたりとかもできるんで、便利だ。GUI好きの人はgripとか使えば良いらしい。
出力ファイル名が、tracknn.cdda.wavと、長くなってしまうんで、まとめてリネーム。
$ for i in *; do mv $i `basename $i cdda.wav`wav; done
あとはflac -8 *でエンコードしておしまい。








