Chinaunix
标题:
文本处理,按时间合并
[打印本页]
作者:
kingkingdm
时间:
2018-06-22 14:27
标题:
文本处理,按时间合并
有一天内按每分钟粒度的详细数据。 现在需要按5分钟粒度求和。时间为01-05的统计输出为05分,06-10统计为10这样。
PS:一分钟可能有多条数据。 也没有按时间排序
举个栗子:
11:41:00 5237
11:42:00 142
11:43:00 134
11:45:00 2668
11:44:00 17180
11:45:00 63043
11:46:00 4512
11:47:00 423
11:47:00 60002
11:48:00 0
11:49:00 5240
11:49:00 265
11:50:00 3186
要求输出结果:
11:45 88404
11:50 69116
作者:
Herowinter
时间:
2018-06-22 15:07
回复
1#
kingkingdm
awk '{split($1,a,":");if(a[2]%5 != 0)a[2]=(int(a[2]/5))*5+5;b[a[1]":"a[2]]+=$2} END{l=asorti(b,c);for(i=1;i<=l;i++) print c[i],b[c[i]]}' i
11:45 88404
11:50 73628
复制代码
作者:
Herowinter
时间:
2018-06-22 15:08
回复
1#
kingkingdm
awk '{split($1,a,":");if(a[2]%5 != 0)a[2]=(int(a[2]/5))*5+5;b[a[1]":"a[2]]+=$2} END{l=asorti(b,c);for(i=1;i<=l;i++) print c[i],b[c[i]]}' i
11:45 88404
11:50 73628
复制代码
作者:
Herowinter
时间:
2018-06-22 15:12
计算器按了下,这段数字的和是73628,楼主为什么要的是69116?
11:46:00 4512
11:47:00 423
11:47:00 60002
11:48:00 0
11:49:00 5240
11:49:00 265
11:50:00 3186
作者:
wh7211
时间:
2018-06-22 18:09
本帖最后由 wh7211 于 2018-06-22 18:19 编辑
回复
1#
kingkingdm
有一天内按每分钟粒度的详细数据。 现在需要按5分钟粒度求和。时间为01-05的统计输出为05分,06-10统计为10这样。
PS:一分钟可能有多条数据。 也没有按时间排序
1天内24小时的数据就要考虑跨小时的情况
<<<awk4.0+
cat 1
11:41:00 5237
11:42:00 142
11:43:00 134
11:45:00 2668
11:44:00 17180
11:45:00 63043
11:46:00 4512
11:47:00 423
11:47:00 60002
11:48:00 0
11:49:00 5240
11:49:00 265
11:50:00 3186
11:58:00 100
11:59:00 100
23:56:00 200
23:59:00 200
awk -F"[: ]" '{a=$2%5!=0?int($2/5)*5+5:$2;b=$1;if(a==60){a="00";b+=1};if(b==24){b="00"};c[b":"a]=c[b":"a]?c[b":"a]+$4:$4;}END{PROCINFO["sorted_in"]="@ind_num_asc";for(i in c){print i,c[i]}}' 1
00:00 400
11:45 88404
11:50 73628
12:00 200
复制代码
作者:
本友会机友会摄友会
时间:
2018-06-25 15:28
提示:
作者被禁止或删除 内容自动屏蔽
作者:
本友会机友会摄友会
时间:
2018-06-26 14:14
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2