次のコマンドを使用して、他の文字列(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