使用Linux工具根据另一列的id对列的值求和

时间:2011-03-25 01:11:33

标签: linux csv utilities

我有一个用几个字段分隔的文件。我知道如何选择一个特定的字段并自己求和,但是想知道是否有一种使用linux实用程序的干净方法,否则我将在C中完成。

我所说的一个例子:

FILE(有更多字段,但这些是唯一对此情况重要的字段):

  

1 36
  2 96
  5 84422
  2 2
  1 655

所以,对于这个小例子我想要:

  

1 691
  2 98
  5 84422

我不确定是否真的值得尝试使用linux实用程序,但因为我试图使用这些工具扩展我的知识,我想我会问它是否可能,2。)实用。< / p>

2 个答案:

答案 0 :(得分:0)

$ perl -ne '/ /; $x{$`}+=$'\''; END { print "$_ $x{$_}\n" foreach keys %x; }' <<__END__
> 1 36
> 2 96
> 5 84422
> 2 2
> 1 655
> __END__
1 691
2 98
5 84422

答案 1 :(得分:0)

awk '{ a[$1] += $2 } END { for (i in a) { print i " " a[i] } }' input.txt | sort -n