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

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

首先它应该 grep 查找 Pattern_A,然后打印 Pattern_A 之前的所有行,直到找到 Pattern_B(所以基本上它应该向后搜索)

line1 line2 line3 line4 Pattern_B line5 line6 line7 line8 Pattern_A line9 line10 line11 Pattern_B line12 line13 line14 line15 Pattern_A line16 line17 .... .... ....

我希望输出是这样的:

Pattern_B line5 line6 line7 line8 Pattern_A Pattern_B line12 line13 line14 line15 Pattern_A

答案1

每当我听到“向后做某事”时,我就会想:反转输入,然后“正常”做某事,然后反转结果:

tac file | sed -n '/Pattern_A/,/Pattern_B/p' | tac

然而,在这种情况下,“从模式 B 搜索到模式 A”会出现相同的结果

sed -n '/Pattern_B/,/Pattern_A/p' file

相关内容