·5分で読めます

Macで正規表現を使ってファイル名を変更する方法

日付が埋め込まれたテキスト、バージョン番号、ランダムなプレフィックスなど、ファイル名がパターンに従っている場合、単純な検索と置換では対応できません。正規表現なら可能ですが、macOSには正規表現によるリネーム機能が標準で用意されていません。

「report_2026-03-15_draft_v2.pdf」のようなファイルが並ぶフォルダがあり、日付部分だけを抽出して形式を変えたい、アンダースコア以降をすべて削除したい、あるいはファイルごとに異なるパターンを置き換えたい、といったケースがあります。単純なテキスト置換では対応できません。なぜなら、テキストがファイルごとに完全に同じではなく、パターンに従って変化するからです。

正規表現(regex)は、パターンに基づいたテキスト操作のためのツールです。正確な文字列ではなくルールに基づいて、ファイル名の一部をマッチ・キャプチャ・並べ替えることができます。問題は、macOSのFinderにはどこにも正規表現によるリネーム機能が用意されていないことです。

ターミナルを使う方法と、多くの人がそれを避ける理由

renamesed、あるいはパラメータ展開を使ったbashループといったターミナルコマンドを使えば、正規表現でファイルをリネームすることができます。例えば次のようになります。

for f in *.pdf; do mv "$f" "$(echo "$f" | sed 's/draft_v[0-9]*/final/')"; done

これで動作はしますが、実際にはいくつもの欠点があります。

  • プレビューがない — 結果はリネームが実行されたあとにしかわからない
  • 正規表現のタイプミス1つで、ファイル名がめちゃくちゃになっても元に戻せない
  • ワンライナーで正規表現を書いてデバッグするのは苦痛
  • 技術に詳しくないユーザーが現実的に使える方法ではない

経験豊富な開発者であっても、大規模なバッチに対してターミナルでのリネームを避けるのは、取り返しのつかないミスのリスクが高すぎるからです。

ライブプレビュー付きの正規表現リネーム

Renymの検索と置換アクションには、正規表現が完全にサポートされています。正規表現パターンを記述し、(キャプチャグループの参照を含む)置換内容を定義すれば、実際にリネームが行われる前に、すべてのファイルに対する結果をリアルタイムで確認できます。

Renym regex file renaming with live preview on macOS

キャプチャグループの実践

例えば、ファイル名が「2026-03-15_project_alpha.pdf」で、これを「project_alpha_2026-03-15.pdf」にしたいとします。日付とプロジェクト名をそれぞれ別のグループとしてキャプチャする正規表現を書き、置換フィールドでその順序を入れ替えます。プレビュー列には、すべてのファイルの新しい名前が即座に表示されます。

パターンによる削除

「_v1」「_v2」「_v14」のようなバージョンサフィックスをすべて削除したい場合は、_v\d+のような正規表現を使えば、数字に関係なくすべてにマッチします。1つのアクション、1つのパターンで、すべてのファイルがきれいになります。

正規表現を他のアクションと組み合わせる

正規表現はパイプライン内の1つのアクションにすぎません。正規表現による置換のあとに、連番の追加、大文字・小文字の変換、テキストの挿入などを重ねることができます。各ステップは前のステップの結果を引き継ぎ、プレビューにはチェーン全体の結果が反映されます。

ターミナルのリネームコマンドのデバッグに1時間を溶かした経験がある人も、結果をプレビューする方法がなかったために正規表現そのものを避けてきた人も、Renymならその両方の問題を一度に解決できます。

Mac App StoreでRenymを入手

次の記事

Renym

Rename hundreds of files with visual pipelines — regex, numbering, case changes.

Get Renym on the Mac App Store