在一个 grep 模式之后打印行,直到找到新模式

在一个 grep 模式之后打印行,直到找到新模式

我想获取某个 grep 匹配之后的文本文件的所有行,直到我遇到另一个不同的 grep 匹配。但如果之后还有另一场比赛,我想再次显示台词。示例:我的文本文件类似于:

Pattern_A
line1
line2
Pattern_B
line3
line4
Pattern_A
line5
line6
Pattern_B
line7

现在我需要一个命令,输出:

Pattern_A
line1
line2
Pattern_A
line5
line6

先感谢您!

答案1

使用 GNU sed:

sed -n '/Pattern_A/,/Pattern_B/{/Pattern_B/d;p}' file

输出:

图案_A
1号线
第2行
图案_A
5号线
6号线

相关内容