unerwartetes Ergebnis von Gnu sortieren
Frage
, wenn ich versuche, die folgende Textdatei ‚Eingang‘ zu sortieren:
test1 3
test3 2
test 4
mit dem Befehl
sort input
ist der Ausgang genau die Eingabe. Hier ist die Ausgabe von
od -bc input
0000000 164 145 163 164 061 011 063 012 164 145 163 164 063 011 062 012
t e s t 1 \t 3 \n t e s t 3 \t 2 \n
0000020 164 145 163 164 011 064 012
t e s t \t 4 \n
0000027
Es ist nur eine Registerkarte getrennte Datei mit zwei Spalten. Wenn ich
sort -k 2
Der Ausgang wechselt auf
test3 2
test1 3
test 4
das ist, was ich erwarten würde. Aber wenn ich
sort -k 1
ändert sich nichts in Bezug auf den Eingang, während ich würde erwarten, ‚Test‘ zu sortieren, bevor ‚test1‘. Schließlich, wenn ich
cat input | cut -f 1 | sort
ich
test
test1
test3
wie erwartet. Gibt es eine logische Erklärung dafür? Was genau sortieren sollte standardmäßig, so etwas wie tun:
sort -k 1
Meine Version der Art:
sort (GNU coreutils) 7.4
Keine korrekte Lösung
Andere Tipps
Von den man-Seiten:
* WARNUNG * Die locale durch die Umgebung beeinflusst angegeben Sortieren bestellen. Set LC_ALL = C die traditionelle Sortierreihenfolge, Anwendungen zu erhalten Einheimische Byte-Werte.
So scheint es, export LC_ALL = C must help