![Bitte erklären Sie, wie der Sortierbefehl unter Unix verwendet wird](https://rvso.com/image/1497105/Bitte%20erkl%C3%A4ren%20Sie%2C%20wie%20der%20Sortierbefehl%20unter%20Unix%20verwendet%20wird.png)
Ich bin neu bei UNIX. Bitte erklären Sie sort
den Befehl. Ich habe Zweifel bezüglich des Sortierfeldtrennzeichens. Beispiel: sort -k2, 2 filename
, Bitte erläutern Sie. Bitte geben Sie ein kleines Beispiel.
Antwort1
Es liegt ein Syntaxfehler vor . sort -k2, 2 filename
In der Option darf kein Leerzeichen als Trennzeichen vorkommen -k2,2
. Darüber hinaus würde es eine mögliche Quelle von Verwirrung und/oder Fehlern (je nach Inhalt der zu sortierenden Datei) beseitigen, dem Befehl entweder eine Wörterbuchreihenfolge oder eine numerische Sortieroption hinzuzufügen, um deutlich zu machen, wie die Dinge sortiert werden sollen.
Beispiele
cat unsorted-file.txt # original unsorted file
9 8 7
6 55 44
3 2 1
sort -k1 -n unsorted-file.txt # example 1
3 2 1
6 55 44
9 8 7
sort -k3 -n unsorted-file.txt # example 2
3 2 1
9 8 7
6 55 44
sort -k1,3 -n unsorted-file.txt # example 3
3 2 1
6 55 44
9 8 7
sort -k2,3 -n unsorted-file.txt # example 4
3 2 1
9 8 7
6 55 44
Erläuterung
Standardmäßig ist der Feldtrenner ein Übergang von Nicht-Leerzeichen zu Leerzeichen.
KEYDEF -k
ist F[.C][OPTS][,F[.C][OPTS]] für Start- und Stoppposition, wobei F eine Feldnummer und C eine Zeichenposition im Feld ist. Beide sind Ursprung 1 und die Stoppposition ist standardmäßig das Zeilenende.
-k1
- erstes Feld
-k3
- drittes Feld
-k1,3
- erstes Feld starten, drittes Feld stoppen
-k2,3
- zweites Feld starten, drittes Feld stoppen
-n
- Vergleichen nach Zeichenfolge, numerischem Wert