使用awk命令筛选日志文件中执行时间超过200ms的SQL日志信息

使⽤awk命令筛选⽇志⽂件中执⾏时间超过200ms的SQL⽇志信息
以后再⾯试的时候,如果有⾯试官再问我这个问题:“请说⼀下你常⽤的linux命令”,那么awk就可以作为答案之⼀了。
⽇志中要筛选的具体⽇志信息如下,其中包含了mapper以及SQL执⾏的时间
2019-12-20 15:05:14.133 ******** [http-nio-8080-exec-64] INFO  com.simple.page.MyBatisSqlCostInterceptor.intercept[46] - []The SQL request method is : [dule.infopanel.SimStatQuery],execute the SQL cost 457 ms
现在就是要把⽇志所有执⾏时间超过200ms的筛选出来。
具体的脚本如下:
cat service.log | awk '/execute the SQL cost ([0-9]+) ms/' | awk '{costms=gensub(/.+execute the SQL cost ([0-9]*) ms/,"\\1",1);if(costms+0 > 200) print NR, $ 0}' >> out.log
简单解释⼀下:
cat service.log读取⽇志⽂件,使⽤管道命令把读取的内容作为awk的输⼊,
'/execute the SQL cost ([0-9]+) ms/'正则,⽬的是筛选包含SQL执⾏时间的⽇志,
msinfo
gensub(/.+execute the SQL cost ([0-9]*) ms/,"\\1",1)awk的gensub函数,"\\1"是正则匹配的第⼀个括号内的内容。
print NR, $0打印⾏号和当前⾏。

本文发布于:2024-09-24 01:21:58,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/380571.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:筛选   内容   读取   命令   包含
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议