「report_2026-03-15_draft_v2.pdf」のようなファイルが並ぶフォルダがあり、日付部分だけを抽出して形式を変えたい、アンダースコア以降をすべて削除したい、あるいはファイルごとに異なるパターンを置き換えたい、といったケースがあります。単純なテキスト置換では対応できません。なぜなら、テキストがファイルごとに完全に同じではなく、パターンに従って変化するからです。
正規表現(regex)は、パターンに基づいたテキスト操作のためのツールです。正確な文字列ではなくルールに基づいて、ファイル名の一部をマッチ・キャプチャ・並べ替えることができます。問題は、macOSのFinderにはどこにも正規表現によるリネーム機能が用意されていないことです。
ターミナルを使う方法と、多くの人がそれを避ける理由
renameやsed、あるいはパラメータ展開を使ったbashループといったターミナルコマンドを使えば、正規表現でファイルをリネームすることができます。例えば次のようになります。
for f in *.pdf; do mv "$f" "$(echo "$f" | sed 's/draft_v[0-9]*/final/')"; done
これで動作はしますが、実際にはいくつもの欠点があります。
- プレビューがない — 結果はリネームが実行されたあとにしかわからない
- 正規表現のタイプミス1つで、ファイル名がめちゃくちゃになっても元に戻せない
- ワンライナーで正規表現を書いてデバッグするのは苦痛
- 技術に詳しくないユーザーが現実的に使える方法ではない
経験豊富な開発者であっても、大規模なバッチに対してターミナルでのリネームを避けるのは、取り返しのつかないミスのリスクが高すぎるからです。
ライブプレビュー付きの正規表現リネーム
Renymの検索と置換アクションには、正規表現が完全にサポートされています。正規表現パターンを記述し、(キャプチャグループの参照を含む)置換内容を定義すれば、実際にリネームが行われる前に、すべてのファイルに対する結果をリアルタイムで確認できます。
キャプチャグループの実践
例えば、ファイル名が「2026-03-15_project_alpha.pdf」で、これを「project_alpha_2026-03-15.pdf」にしたいとします。日付とプロジェクト名をそれぞれ別のグループとしてキャプチャする正規表現を書き、置換フィールドでその順序を入れ替えます。プレビュー列には、すべてのファイルの新しい名前が即座に表示されます。
パターンによる削除
「_v1」「_v2」「_v14」のようなバージョンサフィックスをすべて削除したい場合は、_v\d+のような正規表現を使えば、数字に関係なくすべてにマッチします。1つのアクション、1つのパターンで、すべてのファイルがきれいになります。
正規表現を他のアクションと組み合わせる
正規表現はパイプライン内の1つのアクションにすぎません。正規表現による置換のあとに、連番の追加、大文字・小文字の変換、テキストの挿入などを重ねることができます。各ステップは前のステップの結果を引き継ぎ、プレビューにはチェーン全体の結果が反映されます。
ターミナルのリネームコマンドのデバッグに1時間を溶かした経験がある人も、結果をプレビューする方法がなかったために正規表現そのものを避けてきた人も、Renymならその両方の問題を一度に解決できます。