一致するクエリを使用してテキストブロックを削除する[重複]

一致するクエリを使用してテキストブロックを削除する[重複]

クエリが見つかったテキストブロック(テキスト)を削除するbashスクリプトを作成しようとしています。残念ながら私はそれを動作させることはできません。

次のリストファイルがあります。

[valid_account]
user        = doe.john
passw       = 4567
mac         = 11-22-33-44-bb-cc
s2          = qwe

[valid_account]
user        = kent.clark
passw       = 1234
mac         = 00-11-22-33-aa-bb
s1          = abc
s2          = efg

[valid_account]
user        = bond.james
passw       = 6789
mac         = 44-55-66-77-ee-ff
s4          = bnm

[valid_account]
user        = parker.peter
passw       = 9876
mac         = 77-bb-cc-66-00-aa
s1          = abc

クエリが00-11-22-33-aa-bbの場合、そのクエリに続くテキストブロックをどのように削除できますか?

[valid_account]
user        = doe.john
passw       = 4567
mac         = 11-22-33-44-bb-cc
s2          = qwe

[valid_account]
user        = bond.james
passw       = 6789
mac         = 44-55-66-77-ee-ff
s4          = bnm

[valid_account]
user        = parker.peter
passw       = 9876
mac         = 77-bb-cc-66-00-aa
s1          = abc

ベストアンサー1

GNU sedの使用

sed '/valid_account/!d;:A;N;$bB;/\n$/!bA;:B;/00-11-22-33-aa-bb/d' infile

おすすめ記事