これらの問題はすべて、私のローカル設定に影響を与えました。私の ubuntu はチェコ語です:
$ echo $LANG
cs_CZ.UTF-8
このローカル設定では、小数点ではなく、整数と残りの部分を区切る小数点のカンマです (数学の授業で考えられていたように、私たちの言語では点の代わりにカンマを書きます)。
したがって:
echo '0,03 >> 0,4 >
> -0,3 >
> 0' | sort -n
> 0
> -0,3 >
> 0,4 >
0,03 >
bash スクリプトを作成している場合は、ソート ルーチンを「通常の」設定を使用するように設定してください。
export LC_ALL=C
問題は、並べ替えコマンドにある可能性があります。同じことを実行すると、期待どおりの結果が得られます:
$ 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.