使用場景:
記錄服務器調用第三方接口的耗時問題;日志返回格式:第三方接口耗時:129ms
需求,查出耗時大於100ms 共有多少條數據
cat /home/work/log4j/life-proxy/2020-12-28/total* |awk -F '第三方接口耗時:' '{print $2}' | awk -F 'ms' '{print $1}' |awk '$NF>100{print $NF}' |wc -l
命令解釋 cat /home/work/log4j/life-proxy/2020-12-28/total*
查看total這個文件的內容
命令解釋:|awk -F '第三方接口耗時:' '{print $2}'
輸出total文件內容后,1以關鍵字[第三方接口耗時:]進行切割,切割后:的結果為:“三方接口耗時:”,“129ms” {print $2} 打印第二部分,也就是拿到了129ms字段
命令解釋:| awk -F 'ms' '{print $1}'
上一步拿到了129ms字段后,在將這個字段切割,這樣就被切割成了“129”,“ms” {print $1}打印第一部分,也就拿到了129字段
命令解釋:|awk '$NF>100{print $NF}'
上一步拿到了129字段,此時$NF 就可以獲取到129數字了, 然后和100對比條件成立,則輸出$NF , $NF 的意思是取一行數據中最后一列的那個值,所以說如果我們的日志結構是129結尾的話,只需要通過awk -F 切割一次 就可以獲取到129數字了,
命令解釋:|wc -l
統計行數的命令
附加:
如果你的日志格式是生產環境的話,比如json格式存儲,也可以使用這種awk 文本處理方式,只是要根據你的環境來區分如何切割,明白了切割方式就可以了。
