linux命令 查询日志筛选条件并返回结果awk 命令的使用


使用场景:

      记录服务器调用第三方接口的耗时问题;日志返回格式:第三方接口耗时: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 文本处理方式,只是要根据你的环境来区分如何切割,明白了切割方式就可以了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM