複数のファイル内の文字列を一括置換する方法

linux上で文字列の一括置換をしたいことが多々ありますが、 コマンドを毎回忘れそうになるので備忘録的に記載します。
grep -rl 'before_text' ./ | xargs sed -i -e 's/before_text/after_text/g'
grepオプション -r : 下層も検索 -l : 検索した結果にファイル名のみを表示 sed -i(–in-place) : 上書き -e : 指定したスクリプト(条件式)で変換処理を行う これでカレントディレクトリ以下のファイル全てを対象として、 指定の文字列を任意の文字列に置換します。 grepでカレントディレクトリ以下 カレントディレクトリのみ置換したい場合や、 対象ファイルを指定する場合は、grep の ./ を任意の対象に変更する。
タイトルとURLをコピーしました