試行再帰検索を実行し、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ファイル名の有効な文字です。禁止されている文字はスラッシュ/
のみです。 およびヌル文字