如何获得bash中得分最高的名字?

时间:2016-02-26 05:14:16

标签: bash

我尝试编写bash代码以获得得分最高的名称。 数据是这样的:

Name  Score
a     63
b     95
c     56

所以我先对文件进行排序,然后打印第一列的第二行

sort -rk 2 -n names.csv
awk 'NR == 2{print $1}' names.csv

但该计划并没有给我任何结果。

3 个答案:

答案 0 :(得分:0)

您需要在一行中完成所有这些工作。

$ sort -rk 2 -n name.csv
b     95
a     63
c     56
Name  Score           
$ sort -rk 2 -n names.csv | awk 'NR==1{print $1}'
b

答案 1 :(得分:0)

sort通常将其输出发送到控制台,因此要么使用输出重定向,要么使用管道。

重定向是:

sort -rk -2 names.csv > sorted.csv
awk '{NR=2 print $1}' sorted.csv

然而,使用管道更优雅,特别是如果您不想保留 sorted.csv (它需要第三个命令来删除它)。

这样做:

    sort -rk -2 names.csv | awk '{NR=2 print $1}'

简单!

答案 2 :(得分:0)

您可以使用剪切

sort -rk 2 -n names.csv | cut -f1 -d' ' | head -n1