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

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

我的文本文件如下所示:

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之间的文本条目。

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

linux awk sed
1个回答
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>
© www.soinside.com 2019 - 2024. All rights reserved.