用科学记数法排序数据。 sort -g不起作用

时间:2017-01-09 18:02:39

标签: sorting unix command-line

我打算发表评论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

1 个答案:

答案 0 :(得分:4)

  

关于你的第一个问题:

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区域设置指定小数点字符和千位分隔符。