Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix文件处理:如何根据另一列中的值对列中的值求和_Unix - Fatal编程技术网

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

Unix文件处理:如何根据另一列中的值对列中的值求和,unix,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函数获得上述结果。您可以在对文件进行排序后使用以下awk命令: sort agglo.tx

我遇到了一个超出我在
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函数获得上述结果。

您可以在对文件进行排序后使用以下
awk
命令:

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;}'
其中,
aggo.txt
是您的输入文件

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

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