News Ticker

Unix-Tools 3: sort

Wir sortieren jeden Tag. Mehr oder weniger bewusst bewerten wir so Preise, Produkte, wirtschaftliche Zahlen, Schulnoten und vieles mehr. Auch dafür gibt es ein Unix-Tool, das auf den simplen und doch markanten Namen sort hört. Wie immer handelt es sich hier um ein Tool, das nur eine einzige Aufgabe übernimmt, aber das fast unschlagbar gut. Es gibt viele Optionen, die das Sortieren und die damit verbundenen Aufgaben schnell und meist ohne Stress erledigen können. Wollt ihr mehr wissen? Dann lest weiter!

Der einfachste Aufruf des Programms erfolgt mit sort dateiname. dateiname ist die zu sortierende Datei ist. Damit ist die Datei schon sortiert. Es gibt jedoch verschiedene Arten des Sortierens. Folgende Ausgabe des Programms ist vollständig sortiert:

23
3
34
45
6
67
67
8
89

Natürlich steht die 34 gleich nach der 3, denn sie ist eine 3 mit einer angehängten 4. Wer logisch, also so wie die meisten von uns denken, sortieren will, benutzt am Besten –n (numeric, dt. numerisch) für Zahlen:

3
6
8
23
34
45
67
67
89

Wer jetzt die 67 nicht zweimal sehen möchte, kann –u (unique, dt. einmalig) benutzen. Damit werden gleiche Zahlen nur einmal ausgegeben. Um die Datei nicht zu sortieren, sondern nur zu testen, reicht ein –c (check, dt. prüfen). Wer die Ausgabe nicht mit Standardein- bzw. ausgabekanälen verändern will, kann mit –o (output, dt. Ausgabe) eine Ausgabedatei angeben. Zwei weitere einfache Optionen sind –r (reverse, dt. umdrehen) um die Ausgabe rückwärts wiederzugeben und –R (random, dt. zufällig) um zufällig zu sortieren. Es handelt sich dabei tatsächlich um sortieren (mit einer variablen Basis) auch wenn das im Volksmund eher als mischen bezeichnet wird. Wer Text sortiert, stößt bei sort schnell auf Probleme bei der Groß- und Kleinschreibung. Das Programm stellt groß geschriebene Wörter generell vor klein geschriebene. Das kann mit –f behoben werden. Zum Schluß noch drei sehr interessante Schalter.

Die Funktion –m (merge, dt. vereinigen) schmilzt zwei schon sortierte Dateien zusammen. Besteht eine Datei aus mehreren Kolonnen (bzw. Spalten), dann sortiert das Programm standardmäßig nur die erste Spalte. Weitere können mit –k angegeben werden:


martin@titan$ cat test8
Alfred 10000
Miriam 7600
Timur 14850
Klaus 5700
martin@titan$ sort –nk2 test8
Klaus 5700
Miriam 7600
Alfred 10000
Timur 14850

Hier muss –n verwendet werden, damit numerisch-logisch sortiert wird. –k2 gibt an, dass nicht die erste Spalte (die Namen), sondern die zweite (die Zahlen) sortiert werden sollen. Das Gleiche funktioniert mit Trennzeichen zwischen den Spalten:


martin@titan$ test8
Alfred:10000
Miriam:7600
Timur:14850
Klaus:5700
martin@titan$ sort -t':' -k2 -n test8
Klaus:5700
Miriam:7600
Alfred:10000
Timur:14850

Das Programm hat wirklich großes Potenzial und ich empfehle euch wieder mal einfach die man-page (man sort) anzuschauen. Bei Fragen, einfach einen Kommentar schreiben. Viel Spaß!