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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM