午後から→オーバークロック

駆け出しハッカー()によるプログラミング・サービス開発備忘録。

シェルスクリプトでファイル名を正規表現比較で分岐して一括リネーム

.jpgをつけずに保存してしまった画像ファイルに一括で.jpgをつけたい。
ただし同じフォルダに.jpgファイルなどもあるのでそれらはリネームしたくない。
そんな状況になったのでshellで正規表現を使って一括リネームした話。

for f in * ;do
        if  [[ ! $f =~ .*(jpg|png|sh) ]];then
                mv $f $f.jpg
        fi
done

絶対「えっ?そんなのmv *.jpg ./tmpとかで避ければ良い話じゃん!」とか言ってはいけない。

参考

シェルの基本

シェル制御構造と正規表現の基礎・UNIXテクニック集

シェルスクリプト入門 書き方のまとめ | Memo on the Web

記号について

シェルの初歩の初歩

記憶力悪いしシェルを頻繁に使わないのですぐ忘れるのです。