我試圖編寫bash代碼來獲得最高分的名稱。 的數據是這樣的:如何在bash中獲得最高分數的名稱?
Name Score
a 63
b 95
c 56
所以我第一次排序的文件,然後打印第一列
sort -rk 2 -n names.csv
awk 'NR == 2{print $1}' names.csv
的第二線,但該計劃並沒有給我任何結果。
我試圖編寫bash代碼來獲得最高分的名稱。 的數據是這樣的:如何在bash中獲得最高分數的名稱?
Name Score
a 63
b 95
c 56
所以我第一次排序的文件,然後打印第一列
sort -rk 2 -n names.csv
awk 'NR == 2{print $1}' names.csv
的第二線,但該計劃並沒有給我任何結果。
您需要在一行中完成所有操作。
$ 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
排序通常將其輸出發送到控制檯,因此要麼使用輸出重定向或使用管道。
重定向是:
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}'
Simples!
謝謝。我試圖使用管道,但結果仍然爲空。 – Miranda