使用awk找到日志中超时的行记录

生产上的日志较大,刷新很快,希望利用awk快速找到交易超时的那部分,日志输出格式如下(日志名称为mca_controller.log),每行日志的元素使用竖划线|分割,第五个元素是响应时间,后面带时间的单位秒。

2018-11-09 22:49:00|aaa|111|mca_controller|0.25s||2323423|23423|23
2018-11-09 22:49:00|aaa|222|mca_controller|2.25s||2323423|23423|23
2018-11-09 22:49:00|aaa|333|mca_controller|3.25s||2323423|23423|23
2018-11-09 22:49:00|aaa|444|mca_controller|4.25s||2323423|23423|23
2018-11-09 22:49:00|aaa|555|mca_controller|23.25s||2323423|23423|23
2018-11-09 22:49:00|aaa|666|mca_controller|45.25s||2323423|23423|23
2018-11-09 22:49:00|aaa|777|mca_controller|1.25s||2323423|23423|23
2018-11-09 22:49:00|aaa|888|mca_controller|6.25s||2323423|23423|23
2018-11-09 22:49:00|aaa|999|mca_controller|11.25s||2323423|23423|23
2018-11-09 22:49:00|aaa|aaa|mca_controller|1.25s||2323423|23423|23
2018-11-09 22:49:00|aaa|bbb|mca_controller|25.25s||2323423|23423|23
2018-11-09 22:49:00|aaa|ccc|mca_controller|133.25s||2323423|23423|23

处理思路:1、先使用awk按照竖线|分割; 

awk -F "|" '{print $5}' mca_controller.log

2、第五个元素是时间带单位,再对其按小数点分割;

awk -F "|" '{split($5,a,".");print a[1]}' mca_controller.log

3、对分割后的时间进行判断,如果大于某个时间才输出

 3.1、实时刷新满足条件的日志

tail -200f mca_controller.log |awk -F  "|" '{split($5,a,"."); if(a[1]>=3) print NR "\t" $0}'

 3.2、搜索日志输出满足条件的日志

awk -F "|" '{split($5,a,"."); if(a[1]>=3) print NR "\t" $0}' mca_controller.log

awk命令详解:https://www.cnblogs.com/xudong-bupt/p/3721210.html

awk入门指南:https://awk.readthedocs.io/en/latest/chapter-one.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值