0

假设我有这个文件

var1 300
var1 400
var3 600
var1 200

现在我该如何比较$1(from line 1) == $1 (from line 2)

基本上我只想在名称相等时添加列

只有awk

输出应该是

var1 900
var3 600
4

2 回答 2

1

使用 awk:

$ awk '{a[$1]+=$2;}END{for (i in a)print i, a[i];}' file
var1 700
var3 600
于 2013-01-16T02:43:20.383 回答
1

如果您的文件很大和/或您关心保留输入顺序并且您的输入在第一个字段上排序,请在 @Guru 的解决方案上使用它:

$ awk '(NR>1) && ($1!=p){print p, s; s=0} {p=$1; s+=$2} END{print p, s}' file
var1 700
var3 600
于 2013-01-16T03:02:45.790 回答