2012-04-05 19 views
10

¿Cómo ordenar este tipo de entrada?La ordenación de Linux no funciona con números flotantes negativos

0.00159265291648695254 
-0.00318530179313823899 
0 
0.00999983333416666468 
0.00362937767285478371 
0.00477794259012844049 
-0.00637057126765263261 
0.00681464007477014026 
-0.00840724736714870645 
-0.00522201549675090458 

De cualquier sort -n data y sort -g data procudes esto:

0 
0.00159265291648695254 
-0.00318530179313823899 
0.00362937767285478371 
0.00477794259012844049 
-0.00522201549675090458 
-0.00637057126765263261 
0.00681464007477014026 
-0.00840724736714870645 
0.00999983333416666468 

Por otro lado -1.whatever estarían frente al cero. Necesito el tipo para notar los signos menos. Gracias.

+3

¿De qué sabor de UNIX estás? Mi Ubuntu funciona bien usando tanto '-g' como' -n'. –

+0

bueno, eso es extraño, estoy usando también ubuntu (Ubuntu 11.10) – tsusanka

+0

También estoy ejecutando 11.10. Mi tipo da su salida exacta * sin ningún parámetro * usando '/ usr/bin/sort', pero tanto' -g' como '-n' funcionan. –

Respuesta

21

todos esos problemas que hicieron mis ajustes locales. Mi ubuntu es en checo:

$ echo $LANG 
cs_CZ.UTF-8 

En este entorno local que no es un punto decimal, en lugar de una coma decimal que separa número entero del resto (como nosotros pensamos en las clases de matemáticas, en nuestro idioma que realmente no escribo por comas en lugar de un punto).

Por lo tanto:

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

Si está escribiendo un script bash, establezca la rutina de clasificación para utilizar la configuración "normal".

export LC_ALL=C 
2

El problema puede estar en su comando de ordenación. Si funciono el mismo mi resultado es el esperado:

$ 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 

Usted SHAUD usar GNU tipo si no usarlo

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. 
+0

mi versión es aún más nueva, tan extraño – tsusanka

+0

thx para tu comentario, mira mi informe si está interesado – tsusanka

Cuestiones relacionadas