renameっていうコマンドあった


しらなかった。ショックである。

インストール

brew install rename

使い方

基本的なやつ

# 正規表現で、カレントディレクトリの全ファイル名置換
$ rename -s .jpg _pc.jpg *

# 置換正規表現をperlとかっぽい形で書いてもOK
$ rename 's/\.jpg/_pc\.jpg/' *

# カレントディレクトリのファイルの、.bakっていう拡張子をすべて葬り去る
$ rename -x *.bak
# つまりこれとおなじ
$ rename -s .bak '' *

置換条件はたくさん渡してもOK。

$ ls
1.foo   2.bar   3.baz

# こうやったら拡張子が一巡して面白いのでは、とおもったけど
$ rename -s foo bar -s bar baz -s baz foo *

# 結果はこうだった
$ ls
1.foo   2.foo   3.foo

# つまりたくさん渡した場合は、はじめのやつから順に処理される。

さっきから使っている-sは、--substの略。
全部を置換したい場合は-S/--subst-allを使う。

$ ls
1.foo.foo.foo

# subst
$ rename -s .foo .baa *

$ ls
1.baa.foo.foo

# 今度はsubst-all
$ rename -S .foo .baa *

$ ls
1.baa.baa.baa

関連記事

参考