在Linux中可能不在同一行的两个模式之间搜索文本

时间:2018-08-31 21:37:18

标签: linux awk sed

我的文本文件如下所示:

line 1: pattern 1 <some text>
         2:  <some text>
         3:  <some text>
         4:  <some text>
         5: pattern 2
         6: pattern 1 <some text><some text> pattern 2 (same line)       
         7: <some other text>

我正在寻找一种优化的方法来在模式1和模式2之间获取文本条目。

我想列出这些模式之间的文本列表。

1 个答案:

答案 0 :(得分:0)

使用 awk

awk 'sub(/.*pattern 1/,""){on=1} sub(/pattern 2.*/,""){print; on=0} on;' yourfile

这两种情况都适用;对于您的文件示例,它将产生:

 <some text>
2:  <some text>
3:  <some text>
4:  <some text>
5: 
 <some text><some text>