Сортировка Linux не работает с отрицательными числами с плавающей точкой

Как отсортировать этот вид ввода?

<code>0.00159265291648695254
-0.00318530179313823899
0
0.00999983333416666468
0.00362937767285478371
0.00477794259012844049
-0.00637057126765263261
0.00681464007477014026
-0.00840724736714870645
-0.00522201549675090458
</code>

Илиsort -n data а такжеsort -g data Прокуд это

<code>0
0.00159265291648695254
-0.00318530179313823899
0.00362937767285478371
0.00477794259012844049
-0.00522201549675090458
-0.00637057126765263261
0.00681464007477014026
-0.00840724736714870645
0.00999983333416666468
</code>

С другой стороны-1.whatever будет перед нулем. Мне нужен вид, чтобы заметить знаки минуса. Спасибо.

 zwol05 апр. 2012 г., 17:37
sort --version
 Joachim Isaksson05 апр. 2012 г., 17:21
Я тоже бегу 11.10. Мой вид дает ваш точный выводwithout any parameters с помощью/usr/bin/sort но оба-g а также-n Работа.
 kev05 апр. 2012 г., 17:25
пожалуйстаtype sort
 tsusanka05 апр. 2012 г., 17:17
хорошо, что это странно, я использую, а также Ubuntu (Ubuntu 11.10)
 Joachim Isaksson05 апр. 2012 г., 17:09
Какой у вас вкус UNIX? Мой Ubuntu сортирует просто отлично, используя оба-g а также-n.

Ответы на вопрос(2)

Проблема может быть в вашей команде сортировки. Если я запускаю то же самое, мой результат будет таким, как ожидалось:

$ echo '0.00159265291648695254
> -0.00318530179313823899
> 0
> 0.00999983333416666468
> 0.00362937767285478371
> 0.00477794259012844049
> -0.00637057126765263261
> 0.00681464007477014026
> -0.00840724736714870645
> -0.00522201549675090458' | sort -n
-0.00840724736714870645
-0.00637057126765263261
-0.00522201549675090458
-0.00318530179313823899
0
0.00159265291648695254
0.00362937767285478371
0.00477794259012844049
0.00681464007477014026
0.00999983333416666468

Вы должны использовать сортировку GNU, если не используете ее

sort (GNU coreutils) 5.93
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software.  You may redistribute copies of it under the terms of
the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.

Written by Mike Haertel and Paul Eggert.
 tsusanka05 апр. 2012 г., 17:39
моя версия еще новее, так странно
 tsusanka05 апр. 2012 г., 17:49
спасибо за ваш комментарий, смотрите мой ответ, если интересно
Решение Вопроса

Все эти неприятности сделали мои локальные настройки. Моя убунту на чешском:

$ echo $LANG
cs_CZ.UTF-8

В этой локальной настройке это не десятичная точка, а десятичная запятая, которая отделяет целое число от остальных (как мы думали в математических классах, на нашем языке мы действительно пишем запятую вместо точки).

Следовательно:

echo '0,03 >> 0,4 >
> -0,3 >
> 0' | sort -n
> 0
> -0,3 >
> 0,4 >
0,03 >

Если вы пишете сценарий bash, настройте процедуру сортировки на использование & quot; normal & quot; Настройки.

export LC_ALL=C

Ваш ответ на вопрос