gpt4 book ai didi

awk - 使用 awk 基于两个匹配字段的 sum 列

转载 作者:行者123 更新时间:2023-12-03 21:42:43 25 4
gpt4 key购买 nike

我似乎无法为这个简单的任务找到 awk 解决方案。我可以轻松地根据一个匹配字段 ($1) 对一列 ($3) 求和:

awk -F, '{array[$1]+=$3} END { for (i in array) {print i"," array[i]}}' datas.csv

现在,我怎样才能根据两个字段做到这一点?让我们说 1 美元和 2 美元?这是一个示例数据:
P1,gram,10  
P1,tree,12
P1,gram,34
P2,gram,23
...

如果第一个和第二个字段匹配,我只需要对第 3 列求和。

感谢您的帮助!

最佳答案

像这样

awk -F, '{array[$1","$2]+=$3} END { for (i in array) {print i"," array[i]}}' datas.csv

我的结果
P1,tree,12
P1,gram,44
P2,gram,23

编辑

由于 OP 需要逗号保留在输出中,我使用@yi_H 的“逗号修复”编辑了上面的答案。

关于awk - 使用 awk 基于两个匹配字段的 sum 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6970041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com