linux搜索关键字前后几行

前言

之前遇到过一个问题,需要查询日志,是linux服务器,但是日志文件很大,超过20G,日志输出特别快,所以直接tail -f 无法也很难截取到日志,所以就想根据关键字,用tail查看最近多少行的日志输出,再用grep搜索查看前后几行的信息

命令

根据关键字查看日志

1
cat web_info.log | grep “请求结果”

根据关键字查看后10行日志

1
cat web_info.log | grep “请求结果” -A 10

根据关键字查看前10行日志

1
cat web_info.log | grep “请求结果” -B 10

根据关键字查看前后10行日志,并显示出行号

1
cat -n web_info.log | grep “请求结果” -C 10

查看日志前 50 行

1
cat web_info.log | head -n 50

查看日志后 50 行,并显示出行号

1
cat -n web_info.log | tail -n 50

说明:

  • -A 表示关键字之后,After
  • -B 表示关键字之前,Before
  • -C 表示关键字前后,Context