假设我有一个文本文件,其中的代码行如下:
foo 10
bar 15
bar 5
foo 30
...生成以下输出的最简单方法是什么:
foo 40
bar 20发布于 2012-11-07 04:37:44
这样就可以了:
awk '{arr[$1]+=$2;} END { for (i in arr) print i, arr[i]}' file有关更多信息,请阅读Awk的关联数组。
发布于 2012-11-07 04:38:46
使用以下awk脚本:
awk '{sums[$1] += $2} END {for (a in sums) print a, sums[a]}' infile输出:
foo 40
bar 20Use this awk tutorial on using associative arrays
发布于 2012-11-07 13:53:47
如果您对perl感兴趣:
perl -F -lane '$X{$F[0]}=$X{$F[0]}+$F[1];if(eof){foreach (keys %X){print $_." ".$X{$_}}}' your_filehttps://stackoverflow.com/questions/13258902
复制相似问题