sedについてよく知らないが、パターンの前に2行(タイムアウト値と空行)を削除してから、両方の行を更新タイムアウトで再挿入しようとしている。sedを使用して特定のパターンの前に2行を削除する
- id: phase1
blahblahbal
timeout: 720
- id: phase2
blahblahbalh
timeout: 1800
私は「900」への最初のタイムアウトを更新しようとしている:
は、ここで私がしましたYAMLファイルの一部です。ここで
は、私はgrepをしてきたものだ:
grep -v "$(grep -B 2 'id: phase2' test.yaml | grep -v 'id: phase2')" test.yaml > test.yaml
、その後、SEDで更新された値を挿入します。これは動作していますが、grepはうまく見えません。パターンの前にsedで2行を削除する方法はありますか?
- id: phase1
blahblahbal
- id: phase2
blahblahbalh
timeout: 1800
予想される出力の最終:
- id: phase1
blahblahbal
timeout: 900
- id: phase2
blahblahbalh
timeout: 1800
あなたの予想される出力を表示します。 – 123
パターンに対する相対的な削除は困難です。削除する必要のあるパターンにパターンが従うと、重複します。 –
@JonathanLefflerこのコメントはどのように役に立ちますか? – 123