GNU/Linux >> Linux の 問題 >  >> Linux

実行する前に再帰的なSed検索をテストして置き換えますか?

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

Linux
  1. コマンド ライン:grep に一致するすべてのファイル名を検索して置換します

  2. MySQL が実行されているポートと、接続できるかどうかをテストする方法は?

  3. ファイル名のパターンとファイルの内容に基づいてファイル名を一覧表示しますか?

  1. Mac および Linux でのテキスト ファイルでの再帰的な検索と置換

  2. シェルスクリプトでの検索と置換

  3. sed すべてのタブとスペースを単一のスペースに置き換えます

  1. Linuxでsedを使用してテキストファイルを検索および置換する

  2. Cut / Grep And Df -h?

  3. Grep And Tail -f?