[macOS]Bashでファイル名を一括変換する
開発メモです。大量のファイル名を一括で変換する必要がでてきたので、方法を調べてみました。
今回はmacOSでの解説になります。
実行環境は次の通りです。
- macOS Catalina 10.15.4
renameするファイル
こんな構造のファイルがあるとします。
$ tree .
.
└── dic
├── bb_1.txt
└── bb_2.txt
dicディレクトリ以下のbb_1.txt
とbb_2.txt
のbbをaaに変えていきたいと思います。
renameコマンドを使う方法
renameコマンドを使ってリネームしてみます。
macにはLinuxのrenameコマンドはないので、brewでまずインスールします。
$ brew install rename
あとはfind
でリネーム対象のファイルを検索して変換します。
$ find dic -name "*bb*" | xargs rename -s bb aa
mvコマンドを使う方法
renameコマンドを使わなくてもmvコマンドでfor文を回せばリネームはできます。
$ for f in dic/bb* ; do ; mv $f ${f/bb/aa} ; done
まとめ
renameコマンド、mvコマンドどちらでも結果はこうなるはずです。
$ tree .
.
└── dic
├── aa_1.txt
└── aa_2.txt
renameコマンド、mvコマンドでファイル名一括変換する方法を紹介しました。
参考になれば幸いです。