9.5 sort und uniq – sortiert und einzigartig
sort und uniq
Als Shellanwender kommt man recht oft – auch wenn man es aus der Windows-Welt kommend nicht so ganz glauben mag – in die Situation, bestimmte Zeilen von Dateien zu sortieren und redundante Datensätze zu entfernen.
Gegeben sei folgende Beispieldatei, die zwei Spalten umfasst. Die erste Spalte gibt eine Nummer an, die dem Protokoll (Spalte 2) zugeordnet ist. Einige Dateneinträge sind redundant. Im Folgenden wollen wir diese Datensätze ordnen lassen.
Listing 9.13 Die Beispieldatei
001 ICMP
002 IGMP
089 OSPF
003 GGP
006 TCP
022 IDP
022 IDP
000 IP
012 PUP
017 UDP
255 RAW
Das Programm sort hilft uns nun, diese Daten in Reihenfolge korrekt zu sortieren. Hat die Datei keine führenden Nullen, muss die numerische Sortierung über den Parameter -n explizit aktiviert werden. Anschließend müssen die redundanten Datensätze nur noch entfernt werden, so dass jeder Datensatz exakt einmal vorkommt. Dies wird mittels uniq bewerkstelligt:
Listing 9.14 Die intelligente Lösung
$ sort Beispieldatei | uniq
000 IP
001 ICMP
002 IGMP
003 GGP
006 TCP
012 PUP
017 UDP
022 IDP
089 OSPF
255 RAW
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.