9.5 sort und uniq – sortiert und einzigartig} 

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 beinhaltet. 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.
001 ICMP 002 IGMP 089 OSPF 003 GGP 006 TCP 022 IDP 022 IDP 000 IP 012 PUP 017 UDP 255 RAW
Listing 9.12 Die Beispieldatei
Das Programm sort hilft uns nun, diese Daten in numerischer Reihenfolge korrekt zu sortieren (ohne führende Nullen gibt es allerdings Probleme). Nun müssen die redundanten Datensätze nur noch entfernt werden, sodass jeder Datensatz exakt einmal vorkommt. Dies wird mittels uniq bewerkstelligt:
$ sort Beispieldatei | uniq 000 IP 001 ICMP 002 IGMP 003 GGP 006 TCP 012 PUP 017 UDP 022 IDP 089 OSPF 255 RAW
Listing 9.13 Die intelligente Lösung