我的文件中的数据如下所示:
id Name records
1 joe 3
1 james 4
1 jacky 4
2 mike 10
2 mat 8
2 peter 10
3 bob 3
3 alice 1
3 wis 1
具有相同ID的所有记录属于一个人,但名称可能不同。我需要找到最大记录的id。在上面,例如,id 2具有等于10 + 8 + 10 = 28的记录,并且是与其他id相比的最大值。 因此,我的查询结果应该是任何一个给定的名称,即mike或mat或peter,我需要使用awk;
我尝试了以下内容:
awk '{arr[$1]+=$3} END {for (i in arr){if(arr[i]>max) max=arr[i] ; name=i} } END {print name}'
答案 0 :(得分:0)
有几个问题:
$2
),END
s。我想你想要这个:
awk 'NR>1{count[$1]+=$3;name[$1]=$2;} END{for(i in count){if(count[i]>m){m=count[i]; n=name[i]}};print m,n}' file
28 peter