linux – 根据另一列对列进行求和

我有一个2列的文件,第1列是HH:MM:SS格式的时间,第2列是计数.
我想总结第2列为基础的第一个库.关于第1列的小时和分钟.

输入:

00:00:00,2.00,00:00:10,1.00,00:00:20,00:00:30,6.00,00:00:40,00:00:50,7.00,00:01:00,8.00,00:01:10,00:01:20,00:01:30,11.00,

对于小时:下面的awk工作,

awk -F,'{ a[substr($1,2)]+=$2 } END{ for (i in a) print i "," a[i] }' file

输出:

00,53

分钟:
无法根据Minute提交的总和,请提出获得预期结果的方法.

例外输出:

00:00,19
00:01,34

解决方法

使用`awk:

awk -F '[:,]' -v OFS=,'{s[$1 ":" $2]+=$(NF-1)} END{for (i in s) print i,s[i]}' file
00:00,34

编辑:如果原始时间戳的排序很重要,那么使用:

awk -F '[:,'{k=$1":"$2} !s[k]{b[++n]=k} {s[k]+=$(NF-1)}
     END {for (i=1; i<=n; i++) print b[i],s[b[i]]}' file
00:00,34

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...