我有一个看起来像
的文件y
z
pattern1
line
1
1
1
patern2
x
k
我想要做的是在两种模式之间打印内容,但有以下限制
这意味着我的输出文件应该如下所示
1
1
1
到目前为止,我能够在模式之间进行打印,使用
忽略它们awk '/pattern1/{flag=1;next}/pattern2/{flag=0}flag' file
关于如何做的任何想法?
答案 0 :(得分:1)
试试这个:
awk '/pattern1/{i=1;next}/patern2/{i=0}{if(i==1){i++;next}}i' File
答案 1 :(得分:1)
$ awk '/pattern1/,/patern2/{i++} /patern2/{i=0} i>2' file
1
1
1
在patterns
增量i
之间,2
条记录开始打印(i>2
后)并在结束标记处重置i
。
答案 2 :(得分:0)
您可以在pattern1匹配时记录起始行号:
awk '/pattern1/{s=NR+1;p=1;next}/pattern2/{p=0}p&&NR>s' file
如果next
pattern1 and pattern2