免费注册 查看新帖 |

Chinaunix

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

请教统计时间段内出现次数问题(已解决) [复制链接]

论坛徽章:
0
1 [报告]
发表于 2009-04-07 15:28 |显示全部楼层
awk -F ":" '{a[$1]++}END{for (j in a) print j":00-"j":59",a[j]}' file

论坛徽章:
0
2 [报告]
发表于 2009-04-07 15:44 |显示全部楼层

回复 #4 sby0329 的帖子

[root@Mylinux tmp]# awk -F ":" '{v=$1":00-"$1":59";a[v]=(a[v]?a[v]"\n            "$00)}END{for (j in a) print j,a[j]}' file
12:00-12:59 12:02:40                                    
            12:56:01                                    
            12:58:01                                    
13:00-13:59 13:00:01
10:00-10:59 10:46:16                                    
            10:53:28                                    
11:00-11:59 11:48:01                                    
            11:50:01                                    
            11:54:01                                    
            11:55:01

[ 本帖最后由 ywlscpl 于 2009-4-7 15:47 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-04-07 15:46 |显示全部楼层
刚才以为楼主要打印24小时的,不贴出来浪费了
awk -F ":" '{a[$1+0]++}END{for (j=0;j<=23;j++) {if (!a[j]) a[j]="x";printf "%02d:00-%02d:59 %s\n",j,j,a[j]}}' file
00:00-00:59 x
01:00-01:59 x
02:00-02:59 x
03:00-03:59 x
04:00-04:59 x
05:00-05:59 x
06:00-06:59 x
07:00-07:59 x
08:00-08:59 x
09:00-09:59 x
10:00-10:59 2
11:00-11:59 4
12:00-12:59 3
13:00-13:59 1
14:00-14:59 x
15:00-15:59 x
16:00-16:59 x
17:00-17:59 x
18:00-18:59 x
19:00-19:59 x
20:00-20:59 x
21:00-21:59 x
22:00-22:59 x
23:00-23:59 x

论坛徽章:
0
4 [报告]
发表于 2009-04-07 16:13 |显示全部楼层

回复 #8 sby0329 的帖子

  1. awk -F ":" '$2<30{a[$1+0"m"]++}$2>=30{a[$1+0"n"]++}END{for (j=0;j<=23;j++) {if (!a[j"m"]) a[j"m"]="x";if (!a[j"n"]) a[j"n"]="x";printf "%02d:00-%02d:30 %s\n",j,j,a[j"m"];printf "%02d:30-%02d:59 %s\n",j,j,a[j"n"]}}' file
复制代码


result:
...09:00-09:30 x
09:30-09:59 x
10:00-10:30 x
10:30-10:59 2
11:00-11:30 x
11:30-11:59 4
12:00-12:30 1
12:30-12:59 2
13:00-13:30 1
13:30-13:59 x
14:00-14:30 x
14:30-14:59 x
.....

论坛徽章:
0
5 [报告]
发表于 2009-04-07 16:24 |显示全部楼层

回复 #10 cjaizss 的帖子

asort函数,学习了

论坛徽章:
0
6 [报告]
发表于 2009-04-07 17:01 |显示全部楼层
原帖由 sby0329 于 2009-4-7 16:54 发表
谢谢!!
还有一个问题,如果时间格式不是hh:mm:ss 而是hhmmss,又如何统计每隔一小时记录个数呢?


去掉 -F ":",把{a[$1+0]++}改成{a[substr($1,1,2)+0]++}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP