Unix文件处理:如何根据另一列中的值对列中的值求和

时间:2017-12-08 03:12:17

标签: unix

我遇到的问题超出了UNIX的基本知识。 我有一个以下格式的文件:

A AA     234
B BB     5
C CC     56
C CA     92
B CB     35
C CD     36

我希望根据第一列中的值和第二列值将第三列中的值相加为列表。

我期待以下格式的结果。

A AA        234
B BB,CB     40
C CC,CA,CD  184

请帮助我使用UNIX函数获得上述结果。

1 个答案:

答案 0 :(得分:0)

您可以在awk文件之后使用以下sorting命令:

sort agglo.txt | awk '{if(prev==$1){sum+=$3; buffer=buffer","$2;}else{print prev" "buffer" "sum; prev=$1; sum=$3; buffer=$2}}END{print prev" "buffer" "sum;}'

其中agglo.txt是您的输入文件。

这将为您的输入文件提供以下输入:

A AA     234
B BB     5
C CC     56
C CA     92
B CB     35
C CD     36

enter image description here