awkを使用してパターンマッチング後に次のレコードを置き換える方法

awkを使用してパターンマッチング後に次のレコードを置き換える方法

パターンマッチング後に次のレコードを置き換え(または修正)するには?前任者:

1
2
3 blah
4 replace this record
5 blah
6 replace this record
7 
8
9

ここでは、前のレコードが「多分」の場合、4番目と6番目のレコードをスキップまたは置き換えたいと思います。

ベストアンサー1

これは次の行を置き換えますblah

$ awk 'f{$0="replacement"; f=0} /blah/{f=1} 1' file
1
2
3 blah
replacement
5 blah
replacement
7 
8
9

どのように動作しますか?

  • f{$0="replacement"; f=0}

    true f(0 以外) の場合、行は置き換えられ、f0 にリセットされます。

  • /blah/{f=1}

    この行が正規表現と一致する場合はtrueにblah設定されます。f

  • 1

    これはawkのフルライン印刷の秘密の略語です。

おすすめ記事