根据bash中的字段值合并列

时间:2014-01-07 07:32:34

标签: bash shell scripting awk

23:21,74.285714,199924
23:21,80.000000,627377
23:21,82.857143,499796
23:22,85.714286,670676
23:22,87.428571,149860
23:22,88.000000,301272

我正在使用的输入数据集如下所示。

我要做的是在每分钟(第一个字段)的基础上整合数据。应对第二列值进行平均,并将第三个字段值相加。

所以我的输出应该是这样的:

23:21,78,127377
23:22,87,105678

上面的值是样本,没有真正总结或平均,但这就是要点。我现在正试着用awk做这个,有更好的选择吗?

1 个答案:

答案 0 :(得分:2)

你可以试试awk:

awk -F, '{a[$1]+=$2; b[$1]+=$3; c[$1]++}
          END {for (i in a) print i, int(a[i]/c[i]), b[i]}' OFS=, file
23:21,79,1327097
23:22,87,1121808