IT-Academy Logo
Sign Up Login Help
Home - Betriebssysteme - Linux - Anwendungssoftware - Das Kommando "sort" und "uniq"



Das Kommando "sort" und "uniq"

Die Befehle sort und uniq werden erklärt.


Autor: Franz Schaefer (mond)
Datum: 24-05-2002, 00:55:46
Referenzen: info sort
man sort
man uniq
info uniq
man du
Schwierigkeit: Anfänger
Ansichten: 9748x
Rating: Bisher keine Bewertung.

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Übersicht

Heute wieder einmal ein einfacher Befehl. Den sort-Befehl haben wir ja
schon einige Male verwendet. Heute ein wenig Details dazu.

sort blabla.txt

Gibt die Zeilen des blabla.txt Files in sortierter Reihenfolge aus.
Sortiert wird dabei alphabetisch von Zeilenanfang aus.

Man kann das Feld nach dem sortiert werden soll auch angeben:

sort +2 blabla.txt

Würde erst nach dem zweiten Feld aus suchen. Felder sind dabei
normalerweise durch Leerzeichen oder Tabs (white space) getrennt. Will man
ein anderes Trennzeichen so kann man das mit -t angeben:

cat /etc/passwd | sort -n -t ":" +2

Würde nach der UserID sortieren. Interessant hier ist auch der Switch -n
der besagt, dass nach dem numerischen Wert eines Feldes sortiert wird und
nicht nach dem Alphabetischen (d.h. 9 ist nicht groesser als 87).

du -s /home/* |sort -n

Würde z.B. die Homeverzeichnisse sortiert nach belegtem Plattenplatz
ausgeben (du steht fuer "disk usage" und gibt den Speicherplatz einer
Datei oder eines Verzeichnisses an; -s gibt nur die summer für jedes
Argument an)

Die Option "-u" (fuer unique "einzigartig") lässt gleiche Zeilen bei der
Ausgabe weg. z.B.:

sort -u blabla.txt

Das hätte man auch durch:

sort blabla.txt | uniq

erreichen können. Der Befehl "uniq" filtert gleiche Zeilen die
hintereinander kommen (was ja nach einem sort der Fall ist).

Umgekehrt kann uniq aber auch alle Zeilen herausfinden die Doppelt sind:

uniq -d blabla.txt

Würde von allen Zeilen die durch Wiederholung gelöscht wurden, ein
Exemplar ausgeben. Die option -c würde dazu noch die Zahl der
Vorkommnisse angeben. Mit Optionen lässt sich dabei wieder einschränken,
ab welchen Feldern oder wieviele Zeichen verglichen werden sollen... z.B.:

ls -i /usr/bin/ | sort -n | uniq -w 7 -d

gibt alle Files aus /usr/bin aus, die in diesem Verzeichniss ein File mit
der selben inode nummer haben. Oder:

find . -printf "%8s %p\n" |sort -n |uniq -w 8 -D

würde alle Files unterhalb vom aktuellen Verzeichnis ausgeben für die es
ein anderes File gibt, das genau die selbe Länge hat (möglicherweise
ein Duplikat...). ( %s im printf vom find gibt die Filelänge an. %8s auf 8
stellen formatiert) (gross -D anstatt klein -d gibt bei uniq alle
doppelten Zeilen aus und nicht nur jeweils eines davon).

Für manche Aufgaben ist auch die Option -u in uniq nützlich, denn damit werden
nur Zeilen ausgegeben die keine Doppelgänger haben.

EXERCISES:

* Benutze sort und find um die grössten 20 Files unterhalb Deines
Homeverzeichnisses zu finden.

* Verwende die Befehle cat, sort und uniq um alle Zeilen zu finden die in
2 files identisch sind (d.h. in jedem der beiden Files mindestens je
einmal vorkommen). (Muss nicht in einer Zeile gelöst werden. Es gibt
übrigens in GNU-Systemen den Befehl "comm" der das lösen könnte, aber
man kommt auch mit sort und uniq alleine aus).

* verwende die Befehle cat, sort und uniq um alle Zeilen zu finden die nur
in einem der beiden Files vorkommen (muss nicht in einer zeile gelöst
werden).

* noch etwas kniffliger: verwende cat, sort und uniq um Zeilen zu finden
die mindestens einmal im ersten, nicht jedoch im zweiten File vorkommen.

_______________________________________________
CD ist ein service von SILVER SERVER
der inhalt unterliegt der GFDL
_______________________________________________



[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04503
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16551
Queueeinträge:06238
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1138
Comments: 0