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

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