У меня есть файл с положительными числами, отрицательные числа и цифры в научной нотации, все в том же столбце. Я хочу сортировать его по абсолютной величине числа, учитывая научную нотацию.сортировка числовая колонка на основе абсолютных значений и научной нотации
Для примера рассмотрим этот файл:
cat foo
7.70488617137843e-05
-8.50387220311822
0.1
-3.3453262e-02
Я пробовал:
sort foo
0.1
-3.3453262e-02
7.70488617137843e-05
-8.50387220311822
Это рассматривает положительные и отрицательные числа, как же (= абсолютное значение, которое я хочу); но игнорирует научную нотацию.
.
sort -n foo
-8.50387220311822
-3.3453262e-02
0.1
7.70488617137843e-05
Это относится к положительным и отрицательным значениям и игнорирует научную нотацию. Это противоположность тому, что я хочу.
.
sort -g foo
-8.50387220311822
-3.3453262e-02
7.70488617137843e-05
0.1
Это относится к научной нотации (которой я хочу), но также относится к положительным и отрицательным значениям.
.
Выход я хочу будет выглядеть следующим образом:
7.70488617137843e-05
-3.3453262e-02
0.1
-8.50387220311822
Это уважающего научной нотации, но рассматривает положительные и отрицательные числа одинаковы.
Я прочитал документацию по сортировке, но я не могу найти ответ.
Я использую Баш версии 4.1.2
Благодарности
Спасибо всем. Я выбираю этот ответ, потому что он использует sed и сортировку, с которой я немного больше знаком. Кроме того, есть объяснение того, что делает код. Что касается деталей кода, мог бы кто-то уточнить значение этих двух выражений в sed: 1) (. *) [С escaped()] и 2) символ $? – Mau