shell脚本返回文件中两个匹配行之间的行

时间:2014-03-14 08:07:17

标签: bash shell unix grep

我的文件包含以下数据:

Line 1: FILE_READER: TPT19222 Operator instance 1 processing file.

FILE_READER: TPT19222 Operator instance 1 processing file

FILE_READER: TPT19220 Directory scan completed.  2 files processed.

FILE_READER: TPT19222 Operator instance 1 processing

FILE_READER: TPT19222 Operator instance 1 processing

FILE_READER: TPT19222 Operator instance 1 processing

FILE_READER: TPT19220 Directory scan completed.  3 files processed.

我想要unix脚本,它只返回数据

FILE_READER: TPT19222 Operator instance 1 processing

FILE_READER: TPT19222 Operator instance 1 processing

FILE_READER: TPT19222 Operator instance 1 processing

FILE_READER: TPT19220 Directory scan completed.  3 files processed.

我想要unix脚本,它将返回包含“TPT19220”的最后一行和包含第二行的最后一行之间的所有行。

2 个答案:

答案 0 :(得分:4)

您可以尝试此sed

sed -n '/TPT19220/,/TPT19220/{p}' yourfile | sed '1d'

答案 1 :(得分:2)

使用awk你可以说"给我一条线匹配模式1和一条线匹配模式2(包括)"与awk '/pat1/,/pat2/'

也许这就是诀窍(取决于你确切的开始/结束模式要求):

awk '/processing$/,/Directory scan completed/' inputfile