我有一个text / csv文件,如下所示:
EDMP_SCI|INACTIVE|12|AE
EDMP_SCI|INACTIVE|10|AO
EDMP_SCI|ACTIVE|20|IN
EDMP_SCI|ACTIVE|30|US
EDMP_EBBS|UNKNOWN|10|HK
我需要根据column1和column2进行分组
(第3列应具有数字的总和,第4列应具有逗号分隔的值)
所需的输出应类似于:
EDMP_SCI|INACTIVE|22|AE,AO
EDMP_SCI|ACTIVE|50|IN,US
EDMP_EBBS|UNKNOWN|10|HK
我能够分别获得以和号和逗号分隔的列,但是然后需要并行进行。我需要通过Unix shell脚本或Unix中的任何单个命令来实现。
答案 0 :(得分:0)
您可以使用awk
。
例如:
awk -F '|' '{print $1 "|" $2 " " $3" " $4}' input | awk '{sum[$1]+=$2}{loc[$1]=loc[$1]$3","}END{for(c in sum){print c"|"sum[c]"|"substr(loc[c],0,length(loc[c])-1)}}'
input
是您的数据文件。