string3を含む行で、string1をstring2に置き換えます。 string1 が複数回表示されます。

string3を含む行で、string1をstring2に置き換えます。 string1 が複数回表示されます。

次のコマンドを使用して、他の文字列(string3)を含む行の特定の文字列(string1をstring2に置き換えます)を置き換えます。

  sed -i '/string3/ s/string1/string2/' file.txt

質問...

上記のコマンドは正常に機能しますが、string3を含む行に最初にstring1が表示されたときにstring1をstring2に置き換えます。

string1のすべての項目が置き換えられたことを確認するために、コマンドを複数回実行する必要がありました。

  sed -i '/string3/ s/string1/string2/' file.txt
  sed -i '/string3/ s/string1/string2/' file.txt
  sed -i '/string3/ s/string1/string2/' file.txt

ステップ1でstring3を含む行でstring1のすべての項目を置き換える方法はありますか?

これはbashファイルを縮小するのに役立ちます。

とても感謝しています。

ベストアンサー1

あなたがしなければならないのは、sedの「グローバル置換」フラグを最後に追加することだけです:

sed -i '/string3/ s/string1/string2/g' file.txt

おすすめ記事