总结具有相同名称awk的行

时间:2013-04-01 20:44:00

标签: awk

我有三排。 第一行和第二行有数字,第三行有名称。 使用awk,如何汇总与名称相关的所有数字。名字可能是随机的, 所以我可能需要一个变量。例如,它可能看起来像这样

100   221   dog
121   324   cat
42    4341  fish
12    23    cat
2134  424   dog

所以对于狗,猫和鱼的所有出现,输出应该是第1行和第2行的所有数字。 smthg喜欢

dog 2879
cat 480
fish 4383

2 个答案:

答案 0 :(得分:4)

试试这个单行:

awk '{a[$3]+=($1+$2)}END{for(x in a)print x, a[x]}' file

答案 1 :(得分:0)

awk '
{
   name[$3] += $1 + $2
}
END { for (n in name) { print n, name[n]; } } ' datafile