如何在使用 awk/perl 或任何其他命令行工具可能多次出现的两个相同标记模式之间选择行

问题描述 投票:0回答:1

使用

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
或任何命令行工具中以相同的模式执行此操作?

shell perl awk sed pattern-matching
1个回答
0
投票
perl -wnlE' /abc/ and $f ^= 1; $f and say' data.txt
© www.soinside.com 2019 - 2024. All rights reserved.