使用awk或sort不能正确排序负浮点数

时间:2013-11-14 18:47:12

标签: sorting awk floating-point locale

由于某些原因,我的机器上的负浮点数与awksort的比较似乎已被打破。似乎-0.1 < -0.2

当我尝试排序时

0.2
-0.1
-0.2
0.1
0

使用sort -n test.dat,我得

-0.1
-0.2
0
0.1
0.2

而不是

-0.2
-0.1
0
0.1
0.2

我有什么问题?

1 个答案:

答案 0 :(得分:3)

答案:你是法国人!

在法语中,小数点是逗号(,)而不是点(.)。您需要用逗号替换圆点或更改您的区域设置。

尝试LC_NUMERIC=us_EN.UTF-8 sort -n test.dat,你应该得到预期的结果。

有关您的信息,LC_NUMERIC是一个环境变量,其中包含用于格式化非货币数字的区域设置。