2007/03/03

ファイルのリネーム

ファイルのリネームは非常に面倒だ。
Windowsでは、カーソルを動かしてファイルに合わせ、F2を押してそのファイル名を変えるとかいうことをいちいちやらなくてはならない。
あるいは右クリックからだ。
その上、タスクマネージャを見ていると、CPUにも結構な負担がかかるようで、リネームしようとすると変なタイムラグが発生する。
これが単調作業のフラストレーションを助長する。
というわけで、1つ2つのファイルならいいのだが、リネームしなくてはならないファイルが20くらいあると、もうやる気が起きない。

しかし例えば1.jpgから20.jpgというファイルがあったとして、これらをファイル名順に並べると、1.jpg、11.jpg、12.jpg、という風になって、1の次に2が来ない。
こういった画像をビューワで見ようとすると、順番がめちゃくちゃになる。

これらを解決するには、例えば1.jpgを001.jpgという風に変えればいい。
すると001、002という風に並んで、期待通りの順番になる。
これをbashでやらせようとすると、例えば以下のようになる。

i=1
while [ $i -lt 21 ];do
mv image$i.jpg `printf "image%03d.jpg\n" $i`
i=`expr $i + 1`
done

bashでは使っている数字の型を指定できないので、printfを使う。

0 件のコメント: