grepして置換(Linuxとかmacとか)※実行したのはubuntu

参考URL:https://qiita.com/HayneRyo/items/f13f36b969d0ab029553

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

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

Grepで置換したい文字列を含むファイル一覧を取得
Perlを用いて文字列を実際に置換

コマンド

grep -rl "beforeString" ./ | xargs perl -i -pe "s/beforeString/afterString/g"
perlのオプションは下記の通りです。

オプション   機能
-e  文字列をスクリプトとして実行
-p  繰り返し処理と標準出力
-i  ファイルを編集して、バックアップを作成
grep -rl "beforeString" ./ | xargs sed -i -e "s/beforeString/afterString/g"
sedだと少しだけ短く書けますね。
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク