linux日志查询,查找某个关键词后面的内容
shell
grep -n "你的日志关键词" *.log | sed -n 's/:.*//p' | head -1 | xargs -I {} sed -n '{},+1000p' *.log > 22.txt
grep -n "你的日志关键词" *.log
grep:搜索关键词
-n:显示行号(关键!后面要用)
"你的日志关键词":你要搜的内容
*.log:搜索当前目录所有日志文件sed -n 's/:.*//p'
从上面结果里只提取行号
把 app.log🔢xxx 变成纯数字 1234head -1
只取第一个匹配到的行号,避免太多结果干扰
这个也可以取最后一个,改成tail -1xargs -I {} sed -n '{},+1000p' *.log
把前面拿到的行号传给最后的 sed
{},+1000p = 从这行开始,打印本行 + 后面 1000 行