LinuxやMacのターミナル上で、簡単に複数ファイルの文字列を一括置換出来る方法です。いつも失念してしまうので、備忘録として残します。

方法

具体的な方法としては下記のような処理を行います。

  • Grepで置換したい文字列を含むファイル一覧を取得
  • Perlを用いて文字列を実際に置換
grep -rl "beforeString" ./ | xargs perl -i -pe "s/beforeString/afterString/g"

補足

perlのオプションは下記の通りです。

オプション 機能
-e 文字列をスクリプトとして実行
-p 繰り返し処理と標準出力
-i ファイルを編集して、バックアップを作成