LinuxやMacのターミナル上で、簡単に複数ファイルの文字列を一括置換出来る方法です。いつも失念してしまうので、備忘録として残します。
方法
具体的な方法としては下記のような処理を行います。
- Grepで置換したい文字列を含むファイル一覧を取得
- Perlを用いて文字列を実際に置換
grep -rl "beforeString" ./ | xargs perl -i -pe "s/beforeString/afterString/g"
補足
perlのオプションは下記の通りです。
オプション | 機能 |
---|---|
-e | 文字列をスクリプトとして実行 |
-p | 繰り返し処理と標準出力 |
-i | ファイルを編集して、バックアップを作成 |