输入:
anil 14
anil 25
umar 78
umar 13
umar 06
amritha 06
amritha 25
amritha 17
输出:
anil 25
umar 78
amritha 25
如何使用单个awk命令获取此输出?请帮我看看。
答案 0 :(得分:0)
如果您喜欢最大的值,请尝试使用此awk
awk '{a[$1]=$2>a[$1]?$2:a[$1]} END {for (i in a) print i,a[i]}' file
amritha 25
umar 78
anil 25
答案 1 :(得分:0)
您可以让sort
进行排序,然后让awk
进行挑选:
sort -r -k 1,1 -k 2,2 file | awk '{if($1!=prev){prev=$1;print $0}}'
所以,那说......首先按名称排序,然后按第二列排序并颠倒顺序,以便每个名字的最大值首先出现。然后将其传递给awk
,如果第一列相对于之前看到的那一列发生了变化,则打印该行。