shell统计日志中时间段内匹配的数量的方法,有需要的朋友可以参考下。

假设日志文件mtasvr.log格式如下:

T:24583088(04:02:06)[root:Info] 6KqowLDLAgC93DFIKrENAA==.41S2:from=,to=, queued

T:122428336(13:36:51)[root:Info] 6KqowLAbAAByYzJIZGsOAA==.2W:from=,to=, queued

要求统计从14:27:20到15:26:41之间包含queued的数量。

最初,用grep匹配queued,然后用awk取出()中间的时间,最后用wc来统计行数,得到下面这条语句:

复制代码 代码如下:

cat mtasvr.log |grep queued |awk -F\( '{print $2}' |awk -F\) '{if ($1>="14:27:20" && $1<="15:26:41") {print $1}}' |wc -l

接下来,觉得两次awk取出括号()中的时间比较繁琐。决定用sed替换掉括号再统计,会比较好看:

复制代码 代码如下:

cat mtasvr.log |grep 'queued' |sed "s/[()]/;/g" |awk -F\; '{if ($2>="14:27:20" && $2<="15:26:41") {print}}' |wc -l

然后,想法应该去掉cat和grep。cat本身就没必要,grep的匹配也可以直接用sed来完成:

复制代码 代码如下:

sed "/queued/s/[()]/;/g" mtasvr.log |awk -F\; '{if ($2>="14:27:20" && $2<="15:26:41") {print}}' |wc -l

最后,把wc统计行数也去掉,只用sed和awk来完成这个任务:

复制代码 代码如下:

sed "/queued/s/[()]/;/g" mtasvr.log |awk -F\; '{if($2>="14:27:20" && $2<="15:26:41") m++} END{print m}'

总结:

sed和awk很强大,当然有些简化也没必要。

比如wc就能很好的完成统计行数的任务,没必要再去想awk怎么来实现。

linux 统计日志数量总,shell统计日志中时间段内匹配的数量的方法相关推荐

  1. linux下logcat命令,Android shell命令行中过滤adb logcat输出的几种方法

    我们在Android开发中总能看到程序的log日志内容充满了屏幕,而真正对开发者有意义的信息被淹没在洪流之中,让开发者无所适从,严重影响开发效率.本文就具体介绍几种在shell命令行中过滤adb lo ...

  2. linux测试主机的连通性,shell脚本测试某网段内主机连通性

    linux shell 的 shell脚本测试某网段内主机连通性 1. 测试192.168.4.0/24整个网段的连通性(while版本) #!/bin/bash #Author:丁丁历险(Jacob ...

  3. java数组 规定数量_java – 如何在数组中保持不同事物的数量?

    我遇到了一些我不理解的部分代码.它与保持字符串中的字母数量有关.我评论了我没有得到的部分.我将不胜感激任何帮助.谢谢! 我尝试在网上查找,但似乎没有人回答我的问题. public class test ...

  4. wim linux u盘启动项,WinPE迷你系统中通过WimFltr组件挂载WIM镜像方法

    Microsoft Windows Imaging Format (WIM) 映像是MS新型的映像文件,具有高压缩比.挂接方便.挂接内存小等特点.在XP/2K3的winpe中通过挂接WIM作为外置程序 ...

  5. 深度linux怎样设置显卡,在deepin stable系统中配置Intel+Nvidia双显卡的方法

    本文介绍在deepin stable操作系统中配置Intel+Nvidia双显卡的方法,deepin的stable版本目前没有nv-prime的支持,以下配置intel双显卡驱动还是挺简单的,按照步骤 ...

  6. Linux云计算运维之Shell

    Linux云计算运维之Shell find 搜索文件名是完全匹配 grep 搜索文件名中的字符串,包含匹配 echo "字符串" : 把字符串输出到控制台 变量分类 : set [ ...

  7. dbcc 删除日志_有用的DBCC日志命令

    dbcc 删除日志 背景 (Background) When we're architecting or troubleshooting issues in an environment, under ...

  8. hadoop中map和reduce的数量设置问题

    转载http://my.oschina.net/Chanthon/blog/150500 map和reduce是hadoop的核心功能,hadoop正是通过多个map和reduce的并行运行来实现任务 ...

  9. java利用友盟 计算pv uv_通过nginx日志利用shell统计日pv和uv

    通过nginx日志利用shell统计日pv和uv 网上记录nginx日志统计访问量的脚本的文档很多,但是看来看去实际都是一个东西,如下: 1.根据访问IP统计UV awk '{print $1}'  ...

最新文章

  1. echarts 在两点之间画一条线_树的手绘很难画?分步骤教你画,简单易学,收藏起来临摹学习...
  2. C#:统计字符串中每个字符的个数
  3. SharePoint 2010 technology stack
  4. kaggle房价预测特征意思_未来销量预测——Kaggle基础方案(三):特征工程及线下验证划分...
  5. 3dm java32位_3DM游戏运行库合集安装包v2.3
  6. 走在身后的2021,迎面走来的2022
  7. 九、Redis三种集群模式
  8. java二级易错点一
  9. JAVA 静态方法和成员方法、静态方法的调用
  10. 春节不打烊,这份安全应急指南请收好!
  11. linux 16.04 安装与使用vscode试水
  12. 1660_MIT 6.828 JOS初始化boot_alloc的初步实现
  13. @4-1 CCF 2020-06-1 线性分类器
  14. 开关、电机、断路器、电热偶、电表接线图大全
  15. 微信公众平台开发之微客服
  16. SOFAJRaft 在同程旅游中的实践
  17. PhotoShop CC 2017软件整体界面及常规设置
  18. Selenium全屏截图,使用PIL拼接滚动截图
  19. Azkaban的使用
  20. android开发资料!4年小Android的心路历程,附大厂真题面经

热门文章

  1. Web项目使用nginx实现代理端口访问,看这篇就够了
  2. Redis 笔记(13)— scan 和 keys 寻找特定前缀key 字段(命令格式、使用示例、定位大key)
  3. Go 中切片索引与 Python 中列表索引的差异
  4. 如何直观地理解「协方差矩阵」?
  5. Pytorch | BERT模型实现,提供转换脚本【横扫NLP】
  6. 一个隐马尔科夫模型的应用实例:中文分词
  7. SpringBoot整合JDBC、整合Druid数据源详解教程
  8. Mobileye独创性创新
  9. CSS grid 的用法
  10. python 判断字符串是否全部为数字组成(使用isdigit)