sedで一括置換

More than 3 years have passed since last update.

Gitで管理しているファイルの中でこの文字列を全部ガガガっと書き換えたいという時に使うと便利なコマンド。

$ git grep -l | xargs sed -i "" "s/h/m/g"

仕組みは↓こんな感じ。


  • git grep で置換したいファイルを探し出す

  • ファイル名だけをstdoutに吐き出す

  • xargsでsedに渡す

ex) hogeをfugaに置き換えたい。全ファイルで。

$ git grep -l "hoge" | xargs sed -i "" "s/hoge/fuga/g"