<< Javaのprintf | Home | JavaPOS >>
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



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