【问题标题】:Negative floating point numbers are not sorted correctly using awk or sort使用 awk 或 sort 未正确排序负浮点数
【发布时间】:2013-11-27 22:41:45
【问题描述】:

由于某种原因,负浮点数与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

我怎么了?

【问题讨论】:

    标签: sorting awk floating-point locale


    【解决方案1】:

    答案:你是法国人!

    在法语中,小数点是逗号 (,) 而不是点 (.)。您需要用逗号替换点或更改您的语言环境。

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

    供您参考,LC_NUMERIC 是一个环境变量,其中包含用于格式化非货币数字的语言环境。

    【讨论】:

    • +1: 哈哈,第一句话非常好^^(我也是法国人^^)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    相关资源
    最近更新 更多