シェルスクリプトでファイル名を正規表現比較で分岐して一括リネーム
.jpgをつけずに保存してしまった画像ファイルに一括で.jpgをつけたい。
ただし同じフォルダに.jpgファイルなどもあるのでそれらはリネームしたくない。
そんな状況になったのでshellで正規表現を使って一括リネームした話。
for f in * ;do if [[ ! $f =~ .*(jpg|png|sh) ]];then mv $f $f.jpg fi done
絶対「えっ?そんなのmv *.jpg ./tmp
とかで避ければ良い話じゃん!」とか言ってはいけない。
参考
シェルの基本
シェルスクリプト入門 書き方のまとめ | Memo on the Web
記号について
記憶力悪いしシェルを頻繁に使わないのですぐ忘れるのです。