GNU/Linux >> Linux の 問題 >  >> Linux

Linux のソートが負の浮動小数点数で機能しない

これらの問題はすべて、私のローカル設定に影響を与えました。私の 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.

Linux
  1. LinuxでZIPファイルを操作する

  2. Linux Mint 19.2 での Docker のインストールが機能しない

  3. Linux のユーザー名を数字で始めてはいけないのはなぜですか?

  1. Linuxコマンドで楽しい数学ゲームをプレイする

  2. LinuxCプログラミングチュートリアルパート15-2秒の補数と負の数

  3. Linuxでの並べ替えコマンドと例

  1. Linuxで動作するための10のすばらしいヒントとコツ

  2. findおよびduコマンドを使用してLinuxで大きなファイルを検索する方法

  3. LinuxでSFTPクライアントを操作する方法–10sftpコマンド