Bash: сортировка чисел с показателями - PullRequest
19 голосов
/ 01 декабря 2010

Я пытался отсортировать один файл с числовыми значениями, подобными этому:

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

При сортировке все числа сортируются, кроме тех, которые имеют показатель степени, есть ли способ для функции сортировки вычислить это выражение?

Ответы [ 3 ]

34 голосов
/ 01 декабря 2010

Если ваша версия команды сортировки достаточно новая, она должна поддерживать опцию -g (или - general-numeric-sort) , если вам нравятся ваши опции long),Это описано в справочном руководстве следующим образом:

Сортировать численно, используя стандартную функцию C strtod для преобразования префикса каждой строки в число с плавающей запятой двойной точности.Это позволяет указывать числа с плавающей запятой в научной нотации, такие как «1.0e-34» и «10e100».

3 голосов
/ 01 декабря 2010

perl -e 'print sort { $a<=>$b } <>' < input-file
2 голосов
/ 01 декабря 2010

Если у вас нет sort -g, вы можете получить альтернативу scisort.

...