如何删除与模式匹配的行和使用sed后面的行?

我有一个如下所示的文件:

good text good text FLAG bad text bad text good text good text good test bad Text FLAG bad text bad text good text 

我需要删除任何包含“FLAG”的行, 而且总是需要在“FLAG”行之后立即删除这一行。

“旗”线来不规则,我不能依赖任何行号策略。

任何人都知道如何用sed做到这一点?

Solutions Collecting From Web of "如何删除与模式匹配的行和使用sed后面的行?"

使用sed的GNU版本的扩展:

 sed -e '/FLAG/,+1 d' infile 

它产生:

 good text good text good text good text good test good text 

这工作,并不取决于任何扩展:

 sed '/FLAG/{N d }' infile 

N将下一行读入模式空间,然后d删除模式空间。

这是awk一种方法:

 awk '/FLAG/{f=1;next}f{f=0;next}1' file 

要么

 awk '/FLAG/{getline;next}1' file