Sed - 模式的条件匹配

时间:2017-10-31 03:37:48

标签: linux sed

我想做以下事情:

找到模式1,然后找到模式2的第一个实例。这样做之后,我想打印下一行。这是一个sed脚本。我很失落如何做到这一点,因为sed没有if语句。

2 个答案:

答案 0 :(得分:1)

这可能适合你(GNU sed):

sed -n '/first/,${/second/{n;p;q}}' file

设置-n选项以模拟grep,即只打印您想要的内容。关注从first到文件末尾($)的范围。然后匹配second并获取下一行(n),打印(p)并退出(q)。

答案 1 :(得分:0)

如果文件名 j.txt 包含以下内容:

10 20 30
40 50 60
10 90 80

sed -n '/10/p' j.txt | sed -n '/20/,+1p'

首先它将搜索pattern1( 10 )然后它将搜索pattern2( 20 )并打印相应的下一行与内容匹配行

输出将是:

10 20 30
10 90 80