首页 文章

如何让grep打印每条匹配线下方和上方的线? [重复]

提问于
浏览
275

可能重复:grep一个文件,但显示几个周围的行?

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

我想在每个日志行中搜索单词 FAILED ,然后打印每条匹配行上下的行以及匹配行 .

例如:

id : 15
Satus : SUCCESS
Message : no problem

id : 15
Satus : FAILED
Message : connection error

我需要打印:

id : 15
Satus : FAILED
Message : connection error

3 回答

  • 32

    grep的 -A 1 选项会给你一行; -B 1 之前会给你一行;和 -C 1 结合使用前后两条线给你一条线 .

  • 574

    使用-B和-A选项

    grep --help
    ...
    -B, --before-context=NUM  print NUM lines of leading context
    -A, --after-context=NUM   print NUM lines of trailing context
    ...
    
  • 38

    使用-A和-B开关(意思是后面的行和后面的行):

    grep -A 1 -B 1 FAILED file.txt
    

相关问题