ファイルの一括処理
ある程度すでに規則に沿って命名されたファイルに対して、リネームなど一括で行うには。
# foo から始まるファイルを bar から始まるようにする for fn in foo* do mv "'$fn'" `echo "'$fn'" | sed -e "s/foo/bar/"` done # *.jpeg を *.jpg にする for fn in *.jpeg do mv "'$fn'" "'${fn%.jpeg}.jpg'" done
UNIX & Linux コマンド・シェルスクリプト リファレンスの方は for fn in `ls -1 *`
を薦めており、最初はそれを使っていましたが、空白が含まれるファイルを複数として認識してしまうみたいなので for fn in *
を利用することにしました。後者は空白が含まれていても一つのファイルとしてみなすようです。