2013-05-09 69 views
0

从awk脚本中,我得到的输出与本文底部的列表类似,我想在第一列中对它进行数字排序。由于它是指数表示法,我尝试了sort -gk1,1,但它不起作用 - 输出也在该列表中。sort -g按指数表示法不按预期工作

这里有什么问题?我认为-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 

具有相同的结果 - 来看,在临时文件我可以证实没有什么可怕的 - 所以我怀疑它与我的命令有关。

+0

我只是看看你的排序输出,它与sort **的输出完全相同,没有**任何选项。 – Kent 2013-05-09 14:15:03

回答

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 
+0

如果你将文件和管道“猫”到“排序”,它也可以工作吗?在我的机器上都不能工作... =( – 2013-05-09 14:01:06

+0

你得到我想要的输出,但我不明白为什么我不这样做。 – 2013-05-09 14:01:31

+0

@TomasLycken请参阅Edit。with pipe。btw,我有'sort(GNU coreutils) 8.21' – Kent 2013-05-09 14:03:26

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 
+0

我也在使用Ubuntu 13.04(Ubuntu GNOME)。 – 2013-05-09 14:13:18