<< 2007/12/07 | Home | 2007/12/09 >>
PR: 転職    ドメイン    電子機器    インプラント    転職サイト    ダイエット 食事    転職    コンタクトレンズ    流行キーワード    英会話   

範囲の展開

良くダウンローダなんかで、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

Javaのprintf

Cのstdioみたいに、幅を実行時に与えることはできないんだろうか。まぁフォーマット文字列自体を実行時に組み立てればいいじゃんと言われれば、その通りなんだけど。

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 *でエンコードしておしまい。

このサイトの掲載内容は私自身の見解であり、必ずしもIBMの立場、戦略、意見を代表するものではありません。
日本アイ・ビー・エム 花井 志生 Since 1997.6.8