Todos esos problemas hicieron mi configuración local. Mi ubuntu está en checo:
$ echo $LANG
cs_CZ.UTF-8
En esta configuración local, no es un punto decimal, sino una coma decimal que separa un número entero del resto (como se pensaba en las clases de matemáticas, en nuestro idioma realmente escribimos una coma 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, configure la rutina de clasificación para usar la configuración "normal".
export LC_ALL=C
El problema puede estar en su orden de comando. Si ejecuto lo 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
Deberías usar la ordenación GNU si no la usas
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.