ファイルをまとめてリネームするためのシェルスクリプトpowercp(in bash)
2002-11-28版
既存のファイル file に対して
mv file hogefile
を実行するのみ。
ワイルドカードを使うと、複数個のファイルをいっぺんにリネームできる。
ただ現行ファイル名の頭に文字列をくっつけるだけにすぎない。
まだあまり柔軟性はない。
しかし、リネーム+他のディレクトリへの移動の際には上のhogeのところを特に
/home/username/hoge
のように書けばいい(あまり便利ではないが)。
ソース
#!/bin/bash for h in $* do if [ ! -f "$h" ]; then echo '***以下のファイルは本当に存在しますか?' echo $h exit 1 fi done for j in "$*" do echo '***以下のファイルについて処理を行います' echo $j done echo '' echo '***文字列を入れてください' read i echo '' echo '***以下のコマンドを実行します' for j in $@ do echo mv $j $i$j done echo '' echo '***よろしいですか? (y/n)' read k if [ "$k" = "y" -o "$k" = "Y" ]; then for j in $@ do mv -vi $j $i$j done else echo '***中断します' fi |
実行例
$ powercp 0*.mpg ***以下のファイルについて処理を行います 01.mpg 02.mpg 03.mpg 04.mpg 05.mpg 06.mpg 07.mpg 08.mpg 09.mpg ***文字列を入れてください 2p_not_so_good ***以下のコマンドを実行します mv 01.mpg 2p_not_so_good01.mpg mv 02.mpg 2p_not_so_good02.mpg mv 03.mpg 2p_not_so_good03.mpg mv 04.mpg 2p_not_so_good04.mpg mv 05.mpg 2p_not_so_good05.mpg mv 06.mpg 2p_not_so_good06.mpg mv 07.mpg 2p_not_so_good07.mpg mv 08.mpg 2p_not_so_good08.mpg mv 09.mpg 2p_not_so_good09.mpg ***よろしいですか? (y/n) y `01.mpg' -> `2p_not_so_good01.mpg' `02.mpg' -> `2p_not_so_good02.mpg' `03.mpg' -> `2p_not_so_good03.mpg' `04.mpg' -> `2p_not_so_good04.mpg' `05.mpg' -> `2p_not_so_good05.mpg' `06.mpg' -> `2p_not_so_good06.mpg' `07.mpg' -> `2p_not_so_good07.mpg' `08.mpg' -> `2p_not_so_good08.mpg' `09.mpg' -> `2p_not_so_good09.mpg' |