使用
awk
或 perl
或任何命令行工具,如何选择两个相同标记图案之间出现的线条?可能有多个部分标有这些图案。因此,块在模式第一次出现时开始,在模式第二次出现时结束。此后所有内容都会被忽略,直到该模式下一次出现为止,该模式被认为是第一次出现并重复。
例如:假设文件包含:
abc
def1
ghi1
jkl1
abc
1
2
3
abc
def2
ghi2
jkl2
abc
4
5
6
abc
stu
abc
模式是abc。所以,我需要输出为:
abc
def1
ghi1
jkl1
abc
abc
def2
ghi2
jkl2
abc
abc
stu
abc
我从其他相关问题中尝试了各种方法,但它们都是针对不同的模式。所以,他们对我的情况不起作用。
如何在
awk
或 perl
或任何命令行工具中以相同的模式执行此操作?
perl -wnlE' /abc/ and $f ^= 1; $f and say' data.txt