这可以是一种方法:
$ awk '/pattern1/ {p=1}; p; /pattern2/ {p=0}' file********************************* Results *********************************SUCCEEDED......some text***************************************************************************- 找到时
pattern1
,则使变量p = 1。 - 它仅在时打印行
p==1
。这是通过p
条件完成的。如果为true,它将执行默认的awk操作,即print $0
。否则,事实并非如此。 - 找到时
pattern2
,则使变量p = 0。由于先后检查此条件p
,它将打印pattern2
第一次出现的行。
如果要精确匹配行:
$ awk '$0=="pattern1" {p=1}; p; $0=="pattern2" {p=0}' file测试
$ cat a***************************************************************************text line # n-2pattern1********************************* Results *********************************SUCCEEDED......some text***************************************************************************pattern2text line # m+2pattern2***************************************************************************$ awk '/pattern1/ {p=1}; p; /pattern2/ {p=0}' apattern1********************************* Results *********************************SUCCEEDED......some text***************************************************************************pattern2


