【问题标题】:sort data in scientific notation. sort -g does not work以科学计数法对数据进行排序。排序 -g 不起作用
【发布时间】:2017-01-09 18:02:38
【问题描述】:

我打算评论here,但我缺乏所需的声誉。 我需要将数据排序为以下块,sort 就可以了。 但是,在对以下数据执行 sort -g 时,我得到完全相同的数字 - 如果不是针对 e.. 进行排序。

输入输出:

0.00000000e+00
1.02272602e-02
1.25536099e-01
1.26666948e-02
1.29036099e-01

预期输出

0.00000000e+00
1.02272602e-02
1.26666948e-02
1.25536099e-01
1.29036099e-01

提前非常感谢! 欢迎使用替代方案,但我需要能够按指定列进行排序,例如此块中的第二列:

1.00000e+02, 0.00000000e+00
2.00000e+02, 1.02272602e-02
3.00000e+02, 1.25536099e-01
4.00000e+02, 1.26666948e-02
5.00000e+02, 1.29036099e-01

【问题讨论】:

    标签: sorting unix command-line


    【解决方案1】:

    关于你的第一个问题:

    export LC_NUMERIC=en_US
    sort -g data.txt
    

    测试:

    0.00000000e+00
    1.02272602e-02
    1.26666948e-02
    1.25536099e-01
    1.29036099e-01
    

    关于你的第二个问题,对第二列进行排序:

    export LC_NUMERIC=en_US
    sort -k2.2,2.15g  data.txt
    

    测试:

    1.00000e+02, 0.00000000e+00
    2.00000e+02, 1.02272602e-02
    4.00000e+02, 1.26666948e-02
    3.00000e+02, 1.25536099e-01
    5.00000e+02, 1.29036099e-01
    

    解释:

    LC_NUMERIC 语言环境指定小数点字符和千位分隔符。

    【讨论】:

      猜你喜欢
      • 2011-02-08
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      • 2020-08-29
      • 1970-01-01
      • 2021-02-25
      • 2021-12-29
      相关资源
      最近更新 更多