如果有尾随字段,为什么sort命令的排序方式不同?

时间:2012-04-25 03:39:51

标签: linux shell sorting

考虑排序键:a,a01和a02,如果没有尾随字段,排序结果如下:

$ cat test1
a01
a
a02
$ sort test1
a
a01
a02
$

但是如果有拖尾字段,那就有些奇怪了:

$ cat test2
a01 7
a 12
a02 42
$ sort test2
a01 7
a02 42
a 12
$

为什么键“a”从排序结果的顶部到底部落下?

我的排序版本是“sort(GNU coreutils)5.97”。

1 个答案:

答案 0 :(得分:1)

我的sort版本的手册页说:

***  WARNING  *** The locale specified by the environment affects sort order.  
Set LC_ALL=C to get the traditional sort order that uses native byte values.

事实上,如果我在第二个例子中设置LC_ALL=C并运行sort,我会得到:

$ LC_ALL=C sort < tosort 
a 12
a01 7
a02 42

您的默认定位可能不是C