Was ist in der Befehlszeile ein numerischer Wert für "Allgemein" und "Zeichenfolge" beim Sortieren?


2

Nach "man sort" gibt es zwei Möglichkeiten, numerisch zu sortieren:

-g, --general-numeric-sort
          compare according to general numerical value

und

-n, --numeric-sort
          compare according to string numerical value

Was ist der Unterschied zwischen diesen "Werten"?

Das folgende Beispiel hat nicht ausgereicht, um es mir zu demonstrieren

$ cat numbers.txt
 1
 1.0
01
010
10

$ sort -n numbers.txt
01
 1
 1.0
010
10

$ sort -g numbers.txt
01
 1
 1.0
010
10

Antworten:


4

Dies wird auf Stack Overflow beantwortet:

Was ist der Unterschied zwischen den Optionen --general-numeric-sort und --numeric-sort in gnu sort?

Aus der Antwort:

Bei der allgemeinen numerischen Sortierung werden die Zahlen als Gleitkommazahlen verglichen. Dies ermöglicht eine wissenschaftliche Notation, z. B. 1.234E10, ist jedoch langsamer und kann Rundungsfehlern unterliegen (1.2345678 kann nach 1.2345679 auftreten). Die numerische Sortierung ist nur eine normale alphabetische Sortierung, die weiß, dass 10 nach 1 kommt.

Aus dem GNU-Sortierhandbuch :

Verwenden Sie [allgemeine numerische Sortierung] nur, wenn es keine Alternative gibt. Es ist viel langsamer als --numeric-sort (-n) und kann beim Konvertieren in Gleitkommazahlen Informationen verlieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.