Linux下根据关键字搜索最后一条日志

场景#

有的时候,我们需要针对应用日志分析某个请求后产生的报错信息,但是由于应用的日志很多,我们只想获取第一次请求的前几行、后几行数据,或者 最后一次请求的请求前几行、后几行数据

分析#

(0)文件aaa.txt内容

(1)在文件名中搜索关键字出现的行

grep "关键字"  文件名 

(2)在文件名中搜索关键字出现的行,并显示行号

grep -n "关键字"  文件名 

(3)搜索关键字所在行以及后n行

grep -A n "关键字" 文件名

备注:A,after

(4)搜索关键字所在行以及前n行

grep -B n "关键字" 文件名

备注:B,Before

(5)搜索关键字所在行以及前后n行

grep -C n "关键字" 文件名

(6)搜索关键字第一次出现位置的前后M行

grep -C M "关键字" 文件名 |head -n 2*M+1

备注:关键字+关键字前M行+关键字后M行,所以结果为 2M+1

(7)搜索关键字最后一次出现位置的前后M行

grep -C M "关键字" 文件名 |tail -n 2*M+1

(8)搜索关键字最后一次出现位置的前后M行,并写入文件,如果文件存在则覆盖

grep -C M "关键字" 文件名 |tail -n 2*M+1 > 文件名

备注:> 表示覆盖写入

(9)搜索关键字最后一次出现位置的前后M行,并写入文件,如果文件存在则追加

grep -C M "关键字" 文件名 |tail -n 2*M+1 >> 文件名

备注:>> 表示追加写入

总结#

搜索catalina.out中"Exception"关键字第一次出现位置的前后10行,并写入文件22.log

grep -C 10 "Exception" catalina.out |head -n 2*10+1 >22.log

搜索catalina.out中"Exception"关键字最后一次出现位置的前后10行,并写入文件22.log

grep -C 10 "Exception" catalina.out |tail -n 2*10+1 >22.log
posted @   ^Mao^  阅读(1204)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示
主题色彩