sort -g不能按预期的指数表示法工作

时间:2013-05-09 13:54:16

标签: bash sorting

从awk脚本我得到的输出就像这篇帖子底部的列表一样,我想在第一列上用数字排序。由于它是指数表示法,我尝试了sort -gk1,1,但它不起作用 - 输出也在该列表中。

这是什么问题?我以为-g能够处理指数表示法?

我在Ubuntu 13.04下有sort (GNU coreutils) 8.20

数据:

ORIGINAL OUTPUT             "SORTED" OUTPUT
0.12000000E-07 2.27723e-26  0.10000000E-07 1.84556e-26
0.17000000E-07 3.4771e-26   0.10000000E-08 2.99263e-27
0.13000000E-07 2.50426e-26  0.11000000E-07 2.05792e-26
0.90000000E-08 1.64135e-26  0.12000000E-07 2.27723e-26
0.18000000E-07 3.73627e-26  0.13000000E-07 2.50426e-26
0.80000000E-08 1.44369e-26  0.14000000E-07 2.73749e-26
0.70000000E-08 1.25438e-26  0.15000000E-07 2.97754e-26
0.60000000E-08 1.07324e-26  0.16000000E-07 3.22419e-26
0.50000000E-08 9.01209e-27  0.17000000E-07 3.4771e-26
0.14000000E-07 2.73749e-26  0.18000000E-07 3.73627e-26
0.40000000E-08 7.37598e-27  0.19000000E-07 4.00053e-26
0.30000000E-08 5.8135e-27   0.20000000E-07 9.26608e-26
0.20000000E-08 4.36327e-27  0.20000000E-08 4.36327e-27
0.20000000E-07 9.26608e-26  0.30000000E-08 5.8135e-27
0.10000000E-08 2.99263e-27  0.40000000E-08 7.37598e-27
0.10000000E-07 1.84556e-26  0.50000000E-08 9.01209e-27
0.19000000E-07 4.00053e-26  0.60000000E-08 1.07324e-26
0.15000000E-07 2.97754e-26  0.70000000E-08 1.25438e-26
0.11000000E-07 2.05792e-26  0.80000000E-08 1.44369e-26
0.16000000E-07 3.22419e-26  0.90000000E-08 1.64135e-26

并澄清:我已经尝试过两次

$ ./myscript.sh | sort -g

$ ./myscript.sh > tempfile.txt
$ sort -g tempfile.txt

具有相同的结果 - 并且查看临时文件我可以验证它没有任何可疑 - 所以我怀疑它与我的命令有关。

2 个答案:

答案 0 :(得分:0)

我刚做了一个sort -g file,我得到了这个:

0.10000000E-08 2.99263e-27
0.20000000E-08 4.36327e-27
0.30000000E-08 5.8135e-27 
0.40000000E-08 7.37598e-27
0.50000000E-08 9.01209e-27
0.60000000E-08 1.07324e-26
0.70000000E-08 1.25438e-26
0.80000000E-08 1.44369e-26
0.90000000E-08 1.64135e-26
0.10000000E-07 1.84556e-26
0.11000000E-07 2.05792e-26
0.12000000E-07 2.27723e-26
0.13000000E-07 2.50426e-26
0.14000000E-07 2.73749e-26
0.15000000E-07 2.97754e-26
0.16000000E-07 3.22419e-26
0.17000000E-07 3.4771e-26 
0.18000000E-07 3.73627e-26
0.19000000E-07 4.00053e-26
0.20000000E-07 9.26608e-26

见管道:

kent$  cat file
ORIGINAL OUTPUT           
0.12000000E-07 2.27723e-26
0.17000000E-07 3.4771e-26 
0.13000000E-07 2.50426e-26
0.90000000E-08 1.64135e-26
0.18000000E-07 3.73627e-26
0.80000000E-08 1.44369e-26
0.70000000E-08 1.25438e-26
0.60000000E-08 1.07324e-26
0.50000000E-08 9.01209e-27
0.14000000E-07 2.73749e-26
0.40000000E-08 7.37598e-27
0.30000000E-08 5.8135e-27 
0.20000000E-08 4.36327e-27
0.20000000E-07 9.26608e-26
0.10000000E-08 2.99263e-27
0.10000000E-07 1.84556e-26
0.19000000E-07 4.00053e-26
0.15000000E-07 2.97754e-26
0.11000000E-07 2.05792e-26
0.16000000E-07 3.22419e-26

kent$  cat file|sort -g
ORIGINAL OUTPUT           
0.10000000E-08 2.99263e-27
0.20000000E-08 4.36327e-27
0.30000000E-08 5.8135e-27 
0.40000000E-08 7.37598e-27
0.50000000E-08 9.01209e-27
0.60000000E-08 1.07324e-26
0.70000000E-08 1.25438e-26
0.80000000E-08 1.44369e-26
0.90000000E-08 1.64135e-26
0.10000000E-07 1.84556e-26
0.11000000E-07 2.05792e-26
0.12000000E-07 2.27723e-26
0.13000000E-07 2.50426e-26
0.14000000E-07 2.73749e-26
0.15000000E-07 2.97754e-26
0.16000000E-07 3.22419e-26
0.17000000E-07 3.4771e-26 
0.18000000E-07 3.73627e-26
0.19000000E-07 4.00053e-26
0.20000000E-07 9.26608e-26

答案 1 :(得分:0)

它对我有用。虽然很难说为什么它不适合你。 : - \我似乎和你有相同的版本。尝试重新安装吗?

$ cat file
0.12000000E-07 2.27723e-26
0.17000000E-07 3.4771e-26
0.13000000E-07 2.50426e-26
0.90000000E-08 1.64135e-26
0.18000000E-07 3.73627e-26
0.80000000E-08 1.44369e-26
0.70000000E-08 1.25438e-26
0.60000000E-08 1.07324e-26
0.50000000E-08 9.01209e-27
0.14000000E-07 2.73749e-26
0.40000000E-08 7.37598e-27
0.30000000E-08 5.8135e-27
0.20000000E-08 4.36327e-27
0.20000000E-07 9.26608e-26
0.10000000E-08 2.99263e-27
0.10000000E-07 1.84556e-26
0.19000000E-07 4.00053e-26
0.15000000E-07 2.97754e-26
0.11000000E-07 2.05792e-26
0.16000000E-07 3.22419e-26

$ sort -g file
0.10000000E-08 2.99263e-27
0.20000000E-08 4.36327e-27
0.30000000E-08 5.8135e-27
0.40000000E-08 7.37598e-27
0.50000000E-08 9.01209e-27
0.60000000E-08 1.07324e-26
0.70000000E-08 1.25438e-26
0.80000000E-08 1.44369e-26
0.90000000E-08 1.64135e-26
0.10000000E-07 1.84556e-26
0.11000000E-07 2.05792e-26
0.12000000E-07 2.27723e-26
0.13000000E-07 2.50426e-26
0.14000000E-07 2.73749e-26
0.15000000E-07 2.97754e-26
0.16000000E-07 3.22419e-26
0.17000000E-07 3.4771e-26
0.18000000E-07 3.73627e-26
0.19000000E-07 4.00053e-26
0.20000000E-07 9.26608e-26

$ sort --version
sort (GNU coreutils) 8.20