試行再帰検索を実行し、sedを使用して置き換える方法はありますか? 、実際に実行する前に?実際に検索して置換する前に、結果を印刷したいだけです。の結果をエコーするようなもの
grep -rl term1 . |xargs sed -i -e 's/term1/term2/'
承認された回答:
sedを実行できます -iなし lessで出力をステップスルーします
grep -rl --null term1 . | xargs -0 sed -e 's/term1/term2/' | less
次に、sedを実行します -i.bakを使用 後で差分できるバックアップを作成するには
grep -rl --null term1 . | xargs -0 sed -i.bak -e 's/term1/term2/'
diff somefile.bak somefile
# verify changes were correct
編集: コメントで示唆されているように、grep --null | xargs -0 。これにより、ファイル名はnullバイトで終了し、改行などの異常な文字を含むファイル名に対して安全になります。はい、n UNIXファイル名の有効な文字です。禁止されている文字はスラッシュ/のみです。 およびヌル文字