Frage

Dasselbe verwenden Sortieren Ein Befehl mit derselben Eingabe führt auf verschiedenen Computern zu unterschiedlichen Ergebnissen.Wie kann ich das beheben?

War es hilfreich?

Lösung

Der Manpage unter OS X sagt:

******* WARNUNG ******* Das von der Umgebung angegebene Gebietsschema wirkt sich auf die Sortierreihenfolge aus.Legen Sie LC_ALL = C fest, um die traditionelle Sortierreihenfolge zu erhalten, die native Byte -Werte verwendet.

was die Dinge erklären könnte.

Wenn einige Ihrer Systeme keine Gebietsschemaunterstützung haben, würden sie standardmäßig dieses Gebietsschema (C) verwenden, sodass Sie es dort nicht festlegen müssten.Wenn Sie welche haben, die Gebietsschemata unterstützen und dasselbe Verhalten wünschen, legen Sie fest LC_ALL=C auf diesen Systemen.Auf diese Weise könnten so viele Systeme, wie ich weiß, es auf die gleiche Weise tun.

Wenn Sie keine Systeme ohne Gebietsschema haben, würde es wahrscheinlich ausreichen, nur sicherzustellen, dass sie das Gebietsschema teilen.

Weitere kanonische Informationen finden Sie in der Beschreibung von The Single UNIX ® Specification, Version 2 Gebietsschema, Umgebungsvariablen, setlocale() und die Beschreibung des sort(1) Dienstprogramm.

Andere Tipps

Dies kann auf lokale Unterschiede zurückzuführen sein:

$ echo 'CO2_
CO_' | env LC_ALL=C sort
CO2_
CO_


$ echo 'CO2_
CO_' | env LC_ALL=en_US sort
CO_
CO2_

Das Festlegen der Umgebungsvariablen LC_ALL auf denselben Wert sollte das Problem beheben.

Dies liegt wahrscheinlich an unterschiedlichen Einstellungen des Gebietsschema-Umgebungsvariablen. sort verwendet diese Einstellungen, um zu bestimmen, wie Zeichenfolgen verglichen werden.Indem Sie diese Umgebungsvariablen vor dem Aufruf wie gewünscht festlegen sort, sollten Sie in der Lage sein, ein bestimmtes Verhalten zu erzwingen.

Für mehr, als Sie jemals wissen wollten sort, Lies das Spezifikation von sort im Einzelne Unix-Spezifikation v3.Es sagt aus

Vergleiche werden unter Verwendung der Sortierreihenfolge des aktuellen Gebietsschemas durchgeführt.

IOW, wie sort Die Sortierung hängt von den Gebietsschemaeinstellungen (Spracheinstellungen) der Umgebung ab, in der das Skript ausgeführt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top