Linux 基于bash中给定的键进行排序

Linux 基于bash中给定的键进行排序,linux,bash,sorting,Linux,Bash,Sorting,所以我尝试对一个文本文件进行排序,称之为tmp,它包含4行 第一行是: table-name grade1 grade2 grade3 Richard 100 99 99 Fred 20 100 60 Alex 57 67 75 并根据等级(如果给出)或默认名称对其进行分类。如果它们提示输入-n和-r,则还应反转并以数字标记 $sort是他们想要排序的字段 到目前为止,我尝试的是sort-k“$sort”-nr“$file”的变体,但它只会对grade3进行排序,即使我要求它对grade1进行

所以我尝试对一个文本文件进行排序,称之为
tmp
,它包含4行

第一行是:

table-name grade1 grade2 grade3
Richard 100 99 99
Fred 20 100 60
Alex 57 67 75
并根据等级(如果给出)或默认名称对其进行分类。如果它们提示输入
-n
-r
,则还应反转并以数字标记


$sort
是他们想要排序的字段


到目前为止,我尝试的是
sort-k“$sort”-nr“$file”
的变体,但它只会对
grade3
进行排序,即使我要求它对
grade1
进行排序,并且
$sort
是要排序的列号,请执行以下操作:

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
$
我希望有帮助