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

这篇博客介绍了如何在Linux环境下使用grep命令高效地搜索日志文件,特别是针对大量日志时,如何查找关键字首次和最后一次出现的位置,并提取其前后指定行数的数据。通过grep的-A(后行)、-B(前行)、-C(前后行)选项,可以方便地获取关键字出现的上下文信息,结合head和tail命令,可以进一步筛选出第一次或最后一次出现的关键字及其上下文行,并可将结果保存到文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值