Linux排序不适用于负浮点数

tsu*_*nka 11 unix linux sorting bash ubuntu

如何排序这种输入?

0.00159265291648695254
-0.00318530179313823899
0
0.00999983333416666468
0.00362937767285478371
0.00477794259012844049
-0.00637057126765263261
0.00681464007477014026
-0.00840724736714870645
-0.00522201549675090458
Run Code Online (Sandbox Code Playgroud)

无论是sort -n datasort -g dataprocudes这样的:

0
0.00159265291648695254
-0.00318530179313823899
0.00362937767285478371
0.00477794259012844049
-0.00522201549675090458
-0.00637057126765263261
0.00681464007477014026
-0.00840724736714870645
0.00999983333416666468
Run Code Online (Sandbox Code Playgroud)

另一方面,-1.whatever将在零前面.我需要排序注意减号.谢谢.

tsu*_*nka 23

所有这些麻烦都符合我的当地环境.我的ubuntu在捷克:

$ echo $LANG
cs_CZ.UTF-8
Run Code Online (Sandbox Code Playgroud)

在这个本地设置中,它不是一个小数点,而是一个十进制逗号,它将整数与其余部分分开(正如我们在数学课中所想的那样,在我们的语言中我们确实写了逗号而不是一个点).

因此:

echo '0,03 >> 0,4 >
> -0,3 >
> 0' | sort -n
> 0
> -0,3 >
> 0,4 >
0,03 >
Run Code Online (Sandbox Code Playgroud)

如果您正在编写bash脚本,请将排序例程设置为使用"正常"设置.

export LC_ALL=C
Run Code Online (Sandbox Code Playgroud)