我尝试编写bash代码以获得得分最高的名称。 数据是这样的:
Name Score
a 63
b 95
c 56
所以我先对文件进行排序,然后打印第一列的第二行
sort -rk 2 -n names.csv
awk 'NR == 2{print $1}' names.csv
但该计划并没有给我任何结果。
答案 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