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'