GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Die Linux-Sortierung funktioniert nicht mit negativen Gleitkommazahlen

All diese Probleme haben meine lokalen Einstellungen verursacht. Mein Ubuntu ist auf Tschechisch:

$ echo $LANG
cs_CZ.UTF-8

In dieser lokalen Einstellung ist es kein Dezimalpunkt, sondern ein Dezimalkomma, das Integer vom Rest trennt (wie wir im Mathematikunterricht dachten, schreiben wir in unserer Sprache wirklich Komma statt Punkt).

Deshalb:

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

Wenn Sie ein Bash-Skript schreiben, stellen Sie die Sortierroutine so ein, dass sie die "normalen" Einstellungen verwendet.

export LC_ALL=C

Das Problem liegt möglicherweise in Ihrem Sortierbefehl. Wenn ich dasselbe ausführe, ist mein Ergebnis wie erwartet:

$ 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

Sie sollten GNU Sort verwenden, wenn Sie es nicht verwenden

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 C Programming Tutorial Part 15 - 2s Komplement und negative Zahlen

  2. Sortierbefehl in Linux mit Beispielen

  3. So finden Sie große Dateien unter Linux mit den Befehlen find und du

  4. So arbeiten Sie mit dem SFTP-Client unter Linux – 10 sftp-Befehle

  5. Die Docker-Installation unter Linux Mint 19.2 funktioniert nicht

Sortierbefehl in Linux mit Beispielen

Arbeiten mit Nano Editor unter Linux

So arbeiten Sie mit Vordergrund- und Hintergrundprozessen unter Linux

Wie man mit Hardlinks und Softlinks unter Linux arbeitet

FIX:Google Chrome funktioniert nicht unter Kali Linux

Welche Signalnummern funktionieren mit dem Kill-Befehl?