Linuxでファイル名をまとめて変更する
- カテゴリ:
- Linux
さて以下のようなファイルがあったとします。これらにすべて拡張子 .txt を付けるには下記のようにします。for で繰り返し echo と sed の組み合わせで新しいファイル名を作っているのがポイント。` はシングルクォートではなくバッククォート(shift - @)なので注意。
$ ls
apple banana lemon
$ for file in *
> do
> mv -i $file `echo $file | sed 's/$/.txt/'`
> done
$ ls
apple.txt banana.txt lemon.txt
ちなみに上記コマンドをヒストリで確認すると、下記のように表示されることが分かります。
$ for file in *; do mv -i $file `echo $file | sed 's/$/.txt/'`; done
拡張子 .htm を.html を変更するにはこうします。
$ ls
apple.htm banana.htm lemon.htm
$ for file in *; do mv -i $file `echo $file | sed 's/.htm/.html/'`; done
$ ls
apple.html banana.html lemon.html
拡張子 .htm を削除するにはこうします。
$ ls
apple.htm banana.htm lemon.htm
$ for file in *; do mv -i $file `echo $file | sed 's/.htm//'`; done
$ ls
apple banana lemon
先頭に文字を加えたいときはこうします。
$ ls
apple banana lemon
$ for file in *; do mv -i $file `echo $file | sed 's/^/20070610-/'`; done
$ ls
20070610-apple 20070610-banana 20070610-lemon
2007を2008に変更するにはこうします。
$ ls
20070610-apple 20070610-banana 20070610-lemon
$ for file in *; do mv -i $file `echo $file | sed 's/2007/2008/'`; done
$ ls
20080610-apple 20080610-banana 20080610-lemon
コメント