Home / LinuxUser / 2002 / 04 / Sortiert und zugenäht

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Debian leicht gemacht
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

Aufmacher Artikel

Richtige Reihenfolge

Sortiert und zugenäht

01.04.2002 Mit dem Kommando sort sortieren Sie Zeilen in Dateien oder aus der Standardeingabe. Als reines Sortierprogramm konzipiert, arbeitet das Tool oft mit anderen Programmen auf der Kommandozeile zusammen.

Der Aufruf sort datei sortiert die Zeilen aus der Datei und schickt das Ergebnis nach stdout. Zahlen stehen vor allen anderen Zeichen, Großbuchstaben werden vor Kleinbuchstaben eingeordnet, und deutsche Sonderzeichen wandern ans Ende der Liste. Legen Sie sich zum Testen der wichtigsten Parameter eine einfache Textdatei mit mehreren Zeilen an, z. B. wie in der folgenden Datei:

Petronella,Huhn,lebendig
Easter,Hahn,lebendig
1000,Zahl,tot
Küken,Geflügel,lebendig
ätsch!,bätsch!,tot
1,Zahl,tot
Hubert,Gnom.lebendig
Asteroid,Stein,tot
aua!,weia!,tot

Überprüfen Sie zunächst mit der Option -c, ob die Liste schon sortiert ist:

huhn@asteroid:~$ sort -c datei
sort: datei:2: disorder: Easter,Hahn,lebendig

Die Ausgabe verrät: Bereits in Zeile 2 findet sort ein Wort, das nicht richtig eingeordnet wurde: Easter. Möchten Sie, dass Klein- und Großbuchstaben nicht unterschieden werden, verwenden Sie den Parameter -f.

Um die sortierte Liste statt auf den Bildschirm in eine Datei auszugeben, können Sie entweder sort -o ausgabe datei oder sort datei > ausgabe verwenden. Das >-Zeichen steht dabei für eine Umleitung: Die Ausgabe des oder der Kommandos davor wird statt auf die Standardausgabe in die nach dem >-Zeichen stehende Datei umgelenkt. Vorsicht: Eine bereits vorhandene Datei überschreiben Sie damit. Um die Ausgabe an eine bereits existierende Datei anzuhängen, verwenden Sie stattdessen >> (siehe man bash).

Enthält die Liste Leerzeichen am Zeilenanfang, die Sie beim Sortieren ignorieren möchten, verwenden Sie sort -b. Für eine Liste von Zahlen ist es unter Umständen wichtig, dass statt nach alphabetischem nach numerischem Wert sortiert wird, z. B. "1, 500, 1000" statt "1, 1000, 500". Um die Ziffern richtig einzuordnen, verwenden Sie die Option -g.

Die Option -r bewirkt, dass die Liste rückwärts sortiert wird. Doppelte Listeneinträge können Sie durch sort -u (unique, einmalig) eliminieren.

Listen und Felder

Die Liste aus dem verwendeten Beispiel enthält drei sogenannte Felder, die durch ein Komma getrennt sind. Das Kommando sort kann gezielt nach diesen Feldern sortieren. Dabei sucht es standardmäßig nach Leerzeichen als Trennern zwischen den Einträgen. Mit -t können andere Trennzeichen definiert werden, z. B. sort -t"," datei. Die Zählung der Felder beginnt mit 0 - möchten Sie nach dem zweiten Feld sortieren, verwenden Sie den Parameter +1:

huhn@asteroid:~$ sort -t"," +1 datei
Küken,Geflügel,lebendig
Hubert,Gnom.lebendig
Easter,Hahn,lebendig
[…]

Wie bereits angesprochen verwendet man sort meistens in Kombination mit anderen Befehlen. Als Administrator werden Sie vielleicht herausfinden wollen, welche User den meisten Plattenplatz verbrauchen. Dazu verknüpfen Sie einfach die Befehle du (siehe LinuxUser 04/2001) und sort:

asteroid:~# du -s /home/@L: * | sort -rg
6356156 /home/user1
47304   /home/user2
18864   /home/user3
[…]

Zu Befehl @KL:Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen - wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, in denen es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.

Glossar

stdout

Es gibt drei "Standardkanäle" für Ein- und Ausgabe, stdin (Standardeingabe), stdout (Standardausgabe) und stderr (Standardfehlerausgabe). Ein Benutzer hat z. B. die Tastatur als Standardeingabe und den Bildschirm als -ausgabe. Sofern das Kommando sort nicht umgeleitet wird, sehen Sie das Ergebnis des Aufrufs sort datei am Bildschirm.

Tip a friend    Druckansicht Bookmark and Share
Kommentare

1938 Hits
Wertung: 128 Punkte (9 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

Owncloud mit Linuxmint 15 32 Bit
Santana Muggel, 24.04.2014 16:45, 0 Antworten
Hallo, ich habe nach dem Artikel in Heft 05.2014 versucht, owncloud einzurichten. Bei der Inst...
programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...