cat filename |grep 关键字 -C10 上面显示关键字的前后10行 -C显示前后多少行cat filename |grep 关键字 -A10 上面显示关键字的后10行 -A显示后多少行
cat filename |grep 关键字 -B10 上面显示关键字的前10行 -B显示前多少行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.loggrep -C 10 “Exception” catalina.out |head -n 2*10+1 >22.log
搜索catalina.out中"Exception"关键字最后一次出现位置的前后10行,并写入文件22.loggrep -C 10 “Exception” catalina.out |tail -n 2*10+1 >22.log