ubuntuusers.de

sort

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/terminal.png Mit dem Befehl sort lassen sich Dateien zeilenweise sortieren. Zudem ist es möglich, mit Hilfe von sort zu überprüfen, ob Dateien sortiert sind. Der Befehl kann auch dazu dienen, mehrere sortierte oder unsortierte Dateien zu einer sortierten Gesamtdatei zusammenzufügen.

Installation

Das Programm ist im Paket

  • coreutils

von Ubuntu enthalten und deshalb auf jedem System vorinstalliert.

Aufruf

Die allgemeine Syntax lautet [1]:

sort OPTION DATEI 

sort kennt folgende Optionen:

Optionen von sort
Option Beschreibung
-b oder --ignore-leading-blanks Ignoriere Leerzeichen am Zeilenanfang
-c oder --check oder --check=diagnose-first Überprüfung, ob eine Datei sortiert ist (ohne Sortierung). Ist die Datei nicht sortiert, wird der Wert 1 ausgegeben.
-C oder --check=quiet oder --check=silent Wie -c, jedoch wird die erste unsortierte Zeile nicht ausgegeben
-d oder --dictionary-order Berücksichtige beim Sortieren nur Leerzeichen und alphanumerische Zeichen
-f oder --ignore-case Ignoriere beim Sortieren die Groß- und Kleinschreibung
-g oder --general-numeric-sort Anhand des verallgemeinerten numerischen Wertes vergleichen. Siehe auch Option -n. Unterschied
-h oder --human-numeric-sort Vergleicht menschenlesbare Zahlen (z. B. 2K 1G)
--help Hilfe
-i oder --ignore-nonprinting Nur druckbare Zeichen berücksichtigen
-k oder --key=POS1[,POS2] Ein Schlüssel geht von POS1 (beginnend mit 1) bis POS2 (Voreinstellung: Zeilenende)
-m oder --merge Verbinde bereits sortierte Dateien (ohne anschließende Sortierung)
-M oder --month-sort Monatsweise Sortierung ("January" bis "December")
-n oder --numeric-sort Sortierung von Zahlen gemäß ihrem numerischen Wert. Siehe auch Option -g. Unterschied
-o oder --output=FILE Ausgabe von sort in eine Datei
-R oder --random-sort Sortierung in zufälliger Reihenfolge
-r oder --reverse Sortierung in umgekehrter Reihenfolge
-t oder --Feldtrenner=SEP SEP ist der Trenner anstatt Wechsel von nicht-Leerzeichen zu Leerzeichen (siehe Beispiel mit IP-Nummern am Ende)
--sort=WORT Gemäß WORT sortieren: general-numeric -g, human-numeric -h, month -M, numeric -n, random -R, version -V
-u oder --unique Sortierung ohne doppelte Zeilen

Weitere Optionen sind der Manpage zu entnehmen.

Beispiele

Sortierung nach Größe

Im folgenden Beispiel werden die Dateien im Arbeitsverzeichnis nach der Größe sortiert und die Ausgabe in die Datei datei.txt geschrieben. Zunächst werden mit der -s-Option von ls die Dateien mit der Dateigröße vor dem Dateinamen angezeigt, dann wird die so erzeugte Liste mit einer Pipe an den Sort-Befehl übergeben und das Ergebnis in die Datei geschrieben:

ls -s | sort -n >> datei.txt 

 44K Elmore Leonhard - Easy on the Adverbs.html
120K mcabber_guide.pdf
164K playlist.xspf
432K Richard Rorty - Postmodernist Bourgeois Liberalism.pdf

Sortierung in umgekehrter Reihenfolge

Im folgenden Beispiel wird die Datei deutsche_buchstabiertafel_a-e.txt in umgekehrter alphabetischer Reihenfolge sortiert:

sort -r deutsche_buchstabiertafel_a-e.txt 

Emil
Dora
Cäsar
Berta
Ärger
Anton

Positionsweise Sortierung

Die Datei datei.txt mit dem Inhalt

Helga 1000
Franz 1000
Friedrich 1000
Otto 1500
Paul 5000
Xaver 2000

soll zunächst (numerisch) nach der zweiten und anschließend der ersten Spalte sortiert werden; das Ergebnis soll in eine Datei datei_neu.txt geschrieben werden. Dazu muss sort mit folgenden Optionen benutzt werden:

sort -k2 -n -k1 datei.txt -o datei_neu.txt 

-k2 bezeichnet dabei die zweite Spalte.

Ergebnis:

cat datei_neu.txt 
Franz 1000
Friedrich 1000
Helga 1000
Otto 1500
Xaver 2000
Paul 5000

Mit sort -k kann man sehr schön IP-Adressen sortieren (für IPv4):

sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 

Das geht natürlich auch für für IPv6:

sort -d -t : -k 1,1 -k 2,2 -k 3,3 -k 4,4 -k 5,5 -k 6,6 -k 7,7 -k 8,8 

Diese Revision wurde am 11. Dezember 2023 21:28 von chris34 erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Shell