コマンドラインから複数のファイルの文字列を置換(mac)

複数のファイルをコマンドで一括置換をする方法。

[shell] $ grep -l ‘置換前文字列’ 対象のファイル | xargs sed -i ” ‘s/置換前文字列/置換後文字列/g'[/shell]

macではsedがBSD版のため、sedのiオプションに空文字を渡す必要がある。これはバックアップ用拡張子で、例えば[shell] sed -i ‘.bak'[/shell]とすると 対象ファイル.bak というバックアップファイルが作成される。iオプションにから文字を渡すことで、既存のファイルに上書きさせることができる。

参考