Macでファイル名の一括置換
MacでのTerminalからの置換メモ。
Macではデフォルトで、renameコマンドが使えないので、findとsedで行う。
とっても参考になったサイト:
findとsedを利用した一行野郎のファイル名変換 - Web就活日記
現在いるディレクトリ内の置換
文字列hogehoge
を含むファイル及びディレクトリの中から、ogeho
をoogehoo
に置換するコマンド。
find . -maxdepth 1 -name "*hogehoge*" | sed -e 's/\(\(.*\)ogeho\(.*\)\)/mv \1 \2OgehO\3/g' | sh
*hogehoge*
の部分は検索したい文字列に変更する。ワイルドカードが利用できる。
置換が正しく行われるか不安な場合は以下のコマンドで、置換前と置換後の名前を表示できる。
find . -maxdepth 1 -name "*hogehoge*" | sed -e 's/\(\(.*\)ogeho\(.*\)\)/mv \1 \2OgehO\3/g'
現在いるディレクトリ以下の置換
findのオプション-maxdepth
を省く以外は同じである。
置換コマンド
find . -name "*hogehoge*" | sed -e 's/\(\(.*\)ogeho\(.*\)\)/mv \1 \2OgehO\3/g' | sh
置換確認用のコマンド
find . -name "*hogehoge*" | sed -e 's/\(\(.*\)ogeho\(.*\)\)/mv \1 \2OgehO\3/g'