bash - 根据 bash 中的字段值合并列

标签 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 来完成此操作,有更好的选择吗?

最佳答案

你可以尝试 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

关于bash - 根据 bash 中的字段值合并列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20966266/

相关文章:

linux - 打开终端,运行命令,稍后返回 SAME 终端并执行另一个命令

bash - 如何从终端将文件上传到 Azurite?

bash - 在 bash 中比较两个日期字符串

linux - 替换类文件的 Shell 脚本

Powershell:递归 move 文件

linux - tar 中的 -C 选项更改父目录权限

linux - 用 bash 解析 .env 文件

mysql - awk脚本调整格式

perl - 如何在 Perl CGI 脚本中生成长时间运行的进程?

windows - 在 shell 脚本中检测 windows 操作系统版本