免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1681 | 回复: 1
打印 上一主题 下一主题

如何查询5分钟内指定字符串出现的次数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-01 19:09 |只看该作者 |倒序浏览
比如系统有以下日志:
16:58:02 123
16:58:20 123
16:59:02 234
17:00:02 123
17:01:02 123
17:02:02 345
17:03:02 123
17:04:02 123
17:05:02 123
17:06:02 123
17:07:02 123

如何查询每5分钟内出现123的次数?

本来想用分钟数减5就OK,但是如果跨小时就不能用减法了。

PS:俺用来做MRTG监控用的。
再补充一点,一个日志里面只有24小时的,所以不会出现跨天的比如23:59之后是00:01什么的。

[ 本帖最后由 ljhway 于 2008-7-1 19:14 编辑 ]

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
2 [报告]
发表于 2008-07-01 19:54 |只看该作者
try :

test.awk
  1. #! /bin/awk
  2. BEGIN {
  3.         FS = "[: ]+"
  4. }
  5. {
  6.         min = $1 * 60 + $2
  7.         if ( NR == 1 ) {
  8.                 begin = min
  9.                 end = min + 5
  10.         }
  11.         if ( min > end ) {
  12.                 printf "%02d:%02d -- %02d:%02d\t%d\n" ,begin / 60 ,begin % 60 ,end / 60 ,end % 60 ,i
  13.                 i = 0
  14.                 begin = end + 1
  15.                 end = end + 6
  16.         }
  17.         if ( $4 == 123 ) {
  18.                 i ++
  19.         }
  20. }
  21. END {
  22.         printf "%02d:%02d -- %02d:%02d\t%d\n" ,begin / 60 ,begin % 60 ,end / 60 ,end % 60 ,i
  23. }
复制代码


awk -f test.awk logfile

[ 本帖最后由 ly5066113 于 2008-7-1 20:06 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP