sort

Aus Mikiwiki
Wechseln zu: Navigation, Suche

Der Shell-Befehl sort dient zum Sortieren des Inhalts von Textdateien. Standardmässig beginnt die Sortierung mit dem ersten Zeichen einer Zeile, Leerzeichen werden dabei als Spaltengrenzen interpretiert.

Optionen

Verwendung

Sortierung der Datei "file", wobei das Leerzeichen als Feldtrenner gilt.

$ sort file

Sortieren Datei "file", wobei das Leerzeichen als Feldtrenner gilt. Mehrfach vorkommende Zeilen werden unterdrückt.

$ sort -u file

Sortierung der Datei "/etc/passwd", wobei das Leerzeichen als Feldtrenner gilt. Die vorhandenen Zahlen werden einfach als ASCII-Zeichenketten interpretiert, die alphabetisch sortiert werden - die Zahl 534 wird so vor 55 eingeordnet.

$ sort -t ":" -k 3 /etc/passwd

Sortierung der Datei "/etc/passwd", wobei ":" als Feldtrenner gilt. Die dritte Spalte (die UID) wird numerisch korrekt sortiert.

$ sort -t ":" -nk 3 /etc/passwd

Sortierung der Datei "/etc/passwd", wobei ":" als Feldtrenner gilt. Die dritte Spalte (die UID) wird numerisch korrekt und in umgekehrter Reihenfolge sortiert.

$ sort -t ";" -nrk 3 /etc/passwd

Sortierung der Datei "/etc/passwd", wobei ":" als Feldtrenner gilt. Zuerst wird die vierte Spalte (die GID) numerisch nach Zahlen sortiert. Danach wird die dritte Spalte (die UID) numerisch nach Zahlen in umgekehrter Reihenfolge sortiert.

$ sort -t ":" -k 4n,4 -k 3nr,3 /etc/passwd

Sortierung der Inhalte von Datei "file1". Ausgabe in Datei "file2".

$ sort file1 > file2

Sortieren der Zeilen von Datei "file1", wobei keine mehrfach vorkommenden Zeilen angezeigt werden und das Ergebnis nach Datei "file2" geschrieben wird.

$ sort file1 | uniq > file2
$ more file2
Mueller; Fritz; Gartenrain 20; 8000; Zuerich

Sortierung der Datei "file", wobei ";" als Feldtrenner gilt. Sortierung nach Spalte 4 (Postleitzahl).

$ sort -t ";" +3 -4 file

Sortierung der Datei "file", wobei ";" als Feldtrenner gilt. Sortierung nach Spalte 3 (Postleitzahl).

$ sort -t ";" +3n -4n file

Numerisches Sortieren der Zeilen von Datei "file" nach Spalte 3 (Postleitzahl) und Spalte 4 (Familienname), wobei als Feldtrenner ";" verwendet wird.

$ sort -t ";" +3n -4n +0 -1 file

Sortieren der Prozesse nach Prozessnummer.

$ ps -e | sort -n | grep -l PID

Anzeige des Inhalts des Verzeichnisses "/boot" sortiert nach Spalte fünf (Dateigrösse).

$ ls -l /boot | sort -k 5g

Anzeige der Grösse aller Dateien und Verzeichnisse im Verzeichnis "/home", numerisch korrekt in umgekehrter Reihenfolge sortiert.

$ du -s /home/* | sort -rn

Anzeige der drei am häufigsten vorkommenden Prozesse (das Skript "zaehl.awk" ist unter awk zu finden).

$ ps -e | awk '{ print $4}' | nawk -f zaehl.awk | sort -nr +1 | head -3
ksh 4
ttymon 2
sysevent 2

Sortieren von IP-Adressen in Datei "datei".

$ sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n datei
10.0.0.5
10.0.0.20
192.168.0.2
192.168.0.4

Beispiele

Vorhanden sind folgende Dateien.

$ ls -1
oder
$ ls -1 | sort
ABC100.txt
ABC10.txt
ABC1.txt
ABC200.txt
ABC20.txt
ABC2.txt
$ ls -v1
ABC1.txt
ABC2.txt
ABC10.txt
ABC20.txt
ABC100.txt
ABC200.txt

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
country US.gif Wikipedia eng sort (Unix)wbm Enzyklopädischer Artikel