特定の行の後の文字列を置き換える

特定の行の後の文字列を置き換える

「task Listen」文字列を含む行の後の「edit TRIES 2」文字列を「edit TRIES 3」に置き換えたいと思います。

  task Listen
    edit TRIES 2

sedを使用してこれを行うにはどうすればよいですか? "edit TRIES 2"という文字列がファイルに複数回表示されるため、特定の行を置き換えようとするため、単純なsed置換を実行できません。

ベストアンサー1

もっと簡単なのはどうですか?

sed '/task Listen/{n; s/edit TRIES 2/edit TRIES 3/}' file

前任者。与えられた

$ cat file
    edit TRIES 2
    edit TRIES 2
  task Listen
    edit TRIES 2
    edit TRIES 2

それから

$ sed '/task Listen/{n; s/edit TRIES 2/edit TRIES 3/}' file
    edit TRIES 2
    edit TRIES 2
  task Listen
    edit TRIES 3
    edit TRIES 2

おすすめ記事