对于绝对值低于1的负数,排序行为很奇怪

时间:2013-12-19 09:08:27

标签: regex sorting vim

有人可以解释为什么在vim

:% !sort -ngk1

适用于

-1.3
0.002
0.1
-0.0021
0.2
-0.1
-0.15

给出:

-1.3
-0.0021
-0.1
-0.15
0.002
0.1
0.2

?我怎么能改变这个?或者这是排序中真正的错误吗?

我可以发布很多这样的例子,其中输出更令人困惑(例如甚至是混合符号)。似乎只有低于1的值才会出现此错误。谢谢!

2 个答案:

答案 0 :(得分:2)

对我来说,sort -nk1sort -gk1(排名8.20抱怨options '-gn' are incompatible两者都给出了正确的顺序)。 (此外,这可能与Vim无关,因为您正在调用外部sort命令。)

我最好的猜测是你使用的区域设置具有不同的小数点(例如,在德语中,它是0,42而不是0.42 })。尝试:

$ LC_ALL=en_US.UTF-8 sort -nk1 file

答案 1 :(得分:0)

-n-g选项似乎不兼容。尝试改为

:% !sort -nk1

这似乎可以做你想要的。