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

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

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.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

1051 Hits
Wertung: 69 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 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 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...