2010-12-01 14 views
15

ich eine Datei mit numerischen Werten wie diese zu sortieren versuchte:Bash: sort Zahlen mit Exponenten

414e-05 
435e-05 
0.5361 
0.7278 
0.1341 
0.9592 
0.2664 

Mit Art alle numers außer mit dem Exponenten für diejenigen, sortiert bekommen, ist es eine Möglichkeit, für Art Funktion um diesen Ausdruck auszuwerten?

Antwort

28

Wenn Ihre Version des Sortier Befehl neu genug ist, sollte es die -g Option (oder --General-numeric-sort) unterstützen, wenn Sie Ihre Möglichkeiten lange mögen). Es ist, wie dies in dem Info-Handbuch beschrieben:

Sort numerisch unter Verwendung der Standard-C-Funktion strtod zu einen Präfix jeder Zeile zu einem doppeltgenauen Gleitkommazahl umzuwandeln. Damit können Fließkommazahlen in der wissenschaftlichen Notation wie "1.0e-34" und "10e100" angegeben werden.

+0

aber -g scheint keine * Mischung * von Gleitkommazahlen und wissenschaftlicher Notation zu sortieren. Ich habe eine Art 8.25 und es setzt die beiden ersten Zahlen zu Ende. – HongboZhu

+0

Oh, mein Schlechter. Ich habe ein europäisches Gebietsschema. – HongboZhu

2

Wenn Sie nicht sort -g haben, eine Alternative Sie erhalten können, ist scisort.

+0

Ich habe sort 8.23 ​​und die Option "g" funktioniert nicht. @mob danke für die Lösung. – boczniak767

3

 

perl -e 'print sort { $a<=>$b } <>' < input-file 
Verwandte Themen