加入有文件内容如下所示
注意到如果用前3列作为主键,这个文件5行里有两个主键,分别是1 2 3 与 1 1 1,如果我们需要累加这个文件中的最后一列
达到如下效果:
使用指令如下:使用awk的hash map机制
awk '{key=$1"\t"$2"\t"$3;cnt[key]+=$4}END{ for(x in cnt)printf "%s\t%ld\t%ld\n", x, cnt[x];}' < 22 > 33
如果是使用前两列作为主键,这个文件5行里有两个主键,分别是1 2与1 1, 如果我们需要分别累加这个文件中的最后两列
达到如下效果:
使用如下指令:
awk '{key=$1"\t"$2;cnt[key]+=$3;amt[key]+=$4}END{ for(x in cnt)printf "%s\t%ld\t%ld\n", x, cnt[x], amt[x];}' < 22 > 33