这是我的 list.txt:
a 100
b 300
A 50
e 75
1 10
Run Code Online (Sandbox Code Playgroud)
我运行了以下命令:
sort -k2,2 list.txt
Run Code Online (Sandbox Code Playgroud)
这是我得到的:
1 10
a 100
b 300
A 50
e 75
Run Code Online (Sandbox Code Playgroud)
我试图只对第二列进行排序。根据维基百科,我上面的命令应该给我下面的结果。
a 10
b 50
A 75
e 100
1 300
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
ste*_*ver 16
默认情况下,根据当前语言环境的整理顺序,sort按字典顺序对字符进行排序。所以在你的例子中100排序之后10但之前50因为1总是排序之前5。
要按数字顺序排序,您需要添加说明n符
-n, --numeric-sort
compare according to string numerical value
Run Code Online (Sandbox Code Playgroud)
例如
$ sort -k2,2n list.txt
1 10
A 50
e 75
a 100
b 300
Run Code Online (Sandbox Code Playgroud)