我有一个类似于下面的文件,我想打印两个给定模式pat1和pat2之间的行。
1
2
PAT1
3
4
PAT2
5
6
PAT2
7
PAT2
8
9
PAT2
10
这里pat1出现一次,而pat2出现多次。我想打印pat1和pat2第3次出现之间的行
我使用下面的命令来打印在这种情况下不起作用的模式
awk '/PAT1/PAT2/'
我期望下面的输出
PAT1
3
4
PAT2
5
6
PAT2
7
PAT2
我该怎么做?
最佳答案
显然这是有效的:
$ awk '/PAT1/,/PAT2/&&++c==3' file
PAT1
3
4
PAT2
5
6
PAT2
7
PAT2
请参阅对其工作原理的评论。
关于linux - 在两个图案之间打印行并多次出现第二个图案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50484387/