Name Mangler 3とは
Mac向けリネームアプリで複数のファイルを簡単に一括リネームできる。
某社のエンジニアにこのソフトを使用している方がいたのだが、用途が単純なファイル名およびフォルダ名の一括リネームだけだった。
Name Mangler 3は2,320円とリネームアプリにしては値段が高いので、単純なリネームだけならrenameコマンドを使用したほうが処理が早いし、0円とお財布にもやさしい。
renameコマンドの使い方
まず以下のコマンドでrenameをインストールする。
※ Homebrewをインストールしていない場合は先に公式サイトでインストールしてください。
brew install rename
インストールが完了したらcdコマンドでファイル(フォルダ)があるディレクトリに移動して以下のコマンドを実行するだけで一括置換できる。
rename s/置換前/置換後/ **/*
例えばfooという文字列が含まれるファイル(フォルダ)を一括置換したい場合は以下のようになる。
rename s/foo/bar/ **/*
置換前と置換後のファイル名を置換処理を実行する前に確認したい場合は「-n」を付ける。
rename -n s/置換前/置換後/ **/*
$ rename -n s/foo1/bar1/ **/* 'foo1.html' would be renamed to 'bar1.html'
-iでy/nで置換するものを選択できます。
$ rename -i s/foo1/bar1/ **/* Rename 'foo1.html' to 'bar1.html' (y/n)?
普通にrenameを実行すると.gitの不可視フォルダなども対象になるので、それらを除外する場合は以下のようにfindとxargsを併用する。(renameにフォルダの除外オプションがないため)
※ この書き方の場合はrenameに「**/*」は不要
find . -not -path '*/\.*' | xargs rename s/置換前/置換後/
s/置換前/置換後/は正規表現も以下のように実行可能です。
■ ファイル構成例 foo.html foo1.html foo2.html foo.js dir/foo3.html
$ rename -n 's/foo(\d\.html)$/bar$1/' **/* 'dir/foo3.html' would be renamed to 'dir/bar3.html' 'foo1.html' would be renamed to 'bar1.html' 'foo2.html' would be renamed to 'bar2.html'