假设我有这个文件
var1 300
var1 400
var3 600
var1 200
现在我该如何比较$1(from line 1) == $1 (from line 2)
基本上我只想在名称相等时添加列
只有awk
输出应该是
var1 900
var3 600
使用 awk:
$ awk '{a[$1]+=$2;}END{for (i in a)print i, a[i];}' file
var1 700
var3 600
如果您的文件很大和/或您关心保留输入顺序并且您的输入在第一个字段上排序,请在 @Guru 的解决方案上使用它:
$ awk '(NR>1) && ($1!=p){print p, s; s=0} {p=$1; s+=$2} END{print p, s}' file
var1 700
var3 600