[英]Sorting based on key given in bash
所以我試圖對一個文本文件進行排序,稱之為tmp
,它包含 4 行。
第一行是:
table-name grade1 grade2 grade3
Richard 100 99 99
Fred 20 100 60
Alex 57 67 75
並根據成績進行分類,如果給出的話,或者默認是他們的名字。 如果他們提示輸入-n
和-r
它也應該在數字上反轉和 label。
$sort
是他們想要排序的字段。
到目前為止,我嘗試過的是sort -k"$sort" -nr "$file"
的變體,但即使我要求它對grade3
進行排序,它也只會對grade1
進行排序。
使用$sort
作為對$file
進行排序的列號,請執行以下操作:
sort -nr -t' ' -k${sort},${sort} "${file}"
這是您發布的 3 行的概念證明:
$ cat testfile
Richard 100 99 99
Fred 20 100 60
Alex 57 67 75
$
$ sort -nr -t' ' -k3,3 testfile
Fred 20 100 60
Richard 100 99 99
Alex 57 67 75
$
$ sort -nr -t' ' -k4,4 testfile
Richard 100 99 99
Alex 57 67 75
Fred 20 100 60
$
我希望它有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.