sed命令用于在两个模式之间打印行

时间:2018-01-11 22:21:47

标签: linux unix awk sed

我试图通过sed命令在两个模式之间打印线条。但我想在结果中包含包含Pattern1的行并排除Pattern2。 例如:

/PAT1/
line 1
line 2
line 3
/PAT2/

所需的输出是:

/PAT1/
line 1
line 2
line 3

我试过这个:

sed -n '/PAT1/,/PAT2/{/PAT2/{d};p}' Input_File

但它排除了两种模式。

1 个答案:

答案 0 :(得分:1)

您可以使用awk:awk '/patt1/{flag=1}/patt2/{flag=0}flag' input_file

执行此操作

如果input_file是:

111 
222 
333 
444 
555

awk '/222/{flag=1}/444/{flag=0}flag' input_file

给出:

222
333