排序命令对数字不起作用

排序命令对数字不起作用

这是我的 list.txt:

a    100
b    300
A    50
e    75
1    10

我运行了以下命令:

sort -k2,2 list.txt

这是我得到的:

1    10
a    100
b    300
A    50
e    75

我只想对第二列进行排序。根据 Wikipedia,上面的命令应该给出下面的结果。

a 10
b 50
A 75
e 100
1 300

我是否遗漏了什么?

https://en.wikipedia.org/wiki/Sort_(Unix)

答案1

默认情况下,sort按字符排序字典顺序,基于当前语言环境的排序顺序。因此,在您的示例中,100排序在之后10但在之前,50因为1总是排序在之前5

要按数字顺序排序,需要添加n说明符

   -n, --numeric-sort
          compare according to string numerical value

例如

$ sort -k2,2n list.txt
1   10
A   50
e   75  
a   100 
b   300

相关内容