如何使用UNIX命令获取具有最大年龄的人员的姓名

时间:2014-02-20 20:42:06

标签: linux unix max

我想获取unix数据文件中年龄最大的人的姓名。我怎样才能做到这一点?

Rob,20
Tom,30

我尝试了如下,但它只给了我最大年龄。

awk -F"," '{print $2}' age.txt | sort -r | head -1

4 个答案:

答案 0 :(得分:2)

$ cat file | awk -F, '{print $2,$1;}' | sort -n | tail -n1
30 Tom
$ cat file | awk -F, '{print $2,$1;}' | sort -n | tail -n1 | awk '{print $2;}'
Tom

答案 1 :(得分:1)

尝试

awk -F, '{if (maxage<$2) { maxage= $2; name=$1; };} END{print name}' \
      age.txt

答案 2 :(得分:1)

传统:

sort -t, -nr +1 age.txt | head -1 | cut -d, -f1

POSIXy:

sort -t, -k2,2nr age.txt | head -n 1 | cut -d, -f1

答案 3 :(得分:0)

我认为您可以使用以下命令

轻松完成此操作
echo -e "Rob,20\nTom,30\nMin,10\nMax,50" | sort -t ',' -rk 2 | head -n 1

enter image description here

如有任何问题,请发表评论。