我怎样才能让grep的打印下面每个匹配线以上的线路? [重复](How can I make g

2019-07-29 13:15发布

可能重复:
用grep一个文件,但显示几个周边线路?

我要解析一个非常大的文件,我想,用命令grep(或任何其他工具)。

我想搜索的单词每个日志行FAILED ,然后打印上方,每个匹配线下方的线,以及匹配的行。

例如:

id : 15
Satus : SUCCESS
Message : no problem

id : 15
Satus : FAILED
Message : connection error

我需要打印:

id : 15
Satus : FAILED
Message : connection error

Answer 1:

的grep的-A 1选项会给你一个后线; -B 1会给你一个前行; 和-C 1结合了前,后两个给你一条线, -1不相同。



Answer 2:

使用-B,-A或-C选项

grep --help
...
-B, --before-context=NUM  print NUM lines of leading context
-A, --after-context=NUM   print NUM lines of trailing context
-C, --context=NUM         print NUM lines of output context
-NUM                      same as --context=NUM
...


Answer 3:

使用-A和-B开关(平均线,后线-前):

grep -A 1 -B 1 FAILED file.txt


文章来源: How can I make grep print the lines below and above each matching line? [duplicate]
标签: linux grep