Die Option -k ist das, was Sie wollen.
-k 1.4,1.5n -k 1.14,1.15n
Würde die Zeichenpositionen 4-5 im ersten Feld verwenden (es ist alles ein Feld für feste Breite) und als ersten Schlüssel numerisch sortieren.
Der zweite Schlüssel wären auch die Zeichen 14-15 im ersten Feld.
(bearbeiten)
Beispiel (ich habe nur DOS/cygwin zur Hand):
dir | \cygwin\bin\sort.exe -k 1.4,1.5n -k 1.40,1.60r
für die Daten:
12/10/2008 01:10 PM 1,564,990 outfile.txt
Sortiert die Verzeichnisliste numerisch nach Monatsnummer (Pos. 4-5) und dann umgekehrt nach Dateinamen (Pos. 40-60). Da es keine Tabulatoren gibt, ist alles nach Feld 1 zu sortieren.
Aber Vorsicht:
Wenn Sie die Datei primär nach Feld 3 und sekundär nach Feld 2 sortieren möchten, möchten Sie Folgendes:
sort -k 3,3 -k 2,2 < inputfile
Nicht das: sort -k 3 -k 2 < inputfile
wodurch die Datei nach der Zeichenfolge vom Anfang des Felds 3 bis zum Ende der Zeile (die möglicherweise eindeutig ist) sortiert wird.
-k, --key=POS1[,POS2] start a key at POS1 (origin 1), end it at POS2
(default end of line)