История изменений
Исправление Kroz, (текущая версия) :
Вангую, что можно заменить 'e' на табуляцию и потом сортировать по последнему столбцу (который после 'e' - экспонента) и по предпоследнему (который перед 'e' - множитель). Но это сработает только если множитель всегда больше-равен 1 и меньше 10. Как-то так:
$ cat numbers.txt
one 2 1.5e+01
two 1 1.1e+01
three 4 1.1e+02
four +1 1.1e+10
five -2 7.1e-01
six 3 9.9e+00
$ cat numbers.txt | sed 's/\([0-9]\)e/\1\t/g' | sort -g -k4 -k3 | sed 's/\t\([+-][0-9]\+$\)/e\1/g'
five -2 7.1e-01
six 3 9.9e+00
two 1 1.1e+01
one 2 1.5e+01
three 4 1.1e+02
four +1 1.1e+10
Исправление Kroz, :
Вангую, что можно заменить 'e' на табуляцию и потом сортировать по последнему столбцу (который после 'e' - экспонента) и по предпоследнему (который перед 'e' - множитель). Но это только если целая часть множителя всегда больше 0 и меньше 10. Как-то так:
$ cat numbers.txt
one 2 1.5e+01
two 1 1.1e+01
three 4 1.1e+02
four +1 1.1e+10
five -2 7.1e-01
six 3 9.9e+00
$ cat numbers.txt | sed 's/\([0-9]\)e/\1\t/g' | sort -g -k4 -k3 | sed 's/\t\([+-][0-9]\+$\)/e\1/g'
five -2 7.1e-01
six 3 9.9e+00
two 1 1.1e+01
one 2 1.5e+01
three 4 1.1e+02
four +1 1.1e+10
Исходная версия Kroz, :
Дай тест-кейс - штук 5 строк.
Вангую, что можно заменить 'e' на табуляцию и потом сортировать по последнему столбцу (который после 'e' - экспонента) и по предпоследнему (который перед 'e' - множитель). Но это только если целая часть множителя всегда больше 0 и меньше 10. Как-то так:
$ cat numbers.txt
one 2 1.5e+01
two 1 1.1e+01
three 4 1.1e+02
four +1 1.1e+10
five -2 7.1e-01
six 3 9.9e+00
$ cat numbers.txt | sed 's/\([0-9]\)e/\1\t/g' | sort -g -k4 -k3 | sed 's/\t\([+-][0-9]\+$\)/e\1/g'
five -2 7.1e-01
six 3 9.9e+00
two 1 1.1e+01
one 2 1.5e+01
three 4 1.1e+02
four +1 1.1e+10