less file.txt
01 Joe x
02 Marie y
03 Albert p
04 Dave k
Ich möchte nach Spalte 2 sortieren. Allerdings führen die beiden folgenden Befehle zu derselben Ausgabe. Es wäre toll zu wissen, was der Unterschied zwischen der Verwendung von -k2 und -k2,2 ist.
less file.txt | sort -k2
Undless file.txt | sort -k2,2
Ausgabe:
03 Albert p
04 Dave k
01 Joe x
02 Marie y
Antwort1
Die Angabe nach dem Komma definiert ein stop position
(das standardmäßig dem entspricht end of the line
)
man 1 sort
:
-k
,--key=KEYDEF
Sortierung nach Schlüssel; KEYDEF gibt Ort und Typ anKEYDEF steht
F[.C][OPTS][,F[.C][OPTS]]
für die Start- und Stoppposition, wobei F eine Feldnummer und C eine Zeichenposition im Feld ist. Beide haben den Ursprung 1 und die Stoppposition ist standardmäßig das Zeilenende.
Betrachten Sie beispielsweise eine Eingabe file.txt
:
03 Albert p
04 Albert a
- Bei der Sortierung mit
-k2
würdeAlbert a
vor stehenAlbert p
- Bei Verwendung von
-k2,2
wird der dritte Schlüssel beim Sortieren ignoriert.
oder ein anderes Beispiel:
03 Albert p
04 Aave k
Es ist möglich, nach dem ersten Zeichen des zweiten Schlüssels zu sortieren, indem man Folgendes verwendet -k2,2.2
:
$ sort -k2,2.2 file.txt
03 Albert p
04 Aave k
- Wenn
-k2
verwendet,Aa
würde vor sortiert werdenAl