Unix-Tools 4: wc & comm
wc
wird einfach über wc datei1 datei2 …
aufgerufen. Per Standard werden somit für jede Datei drei Spalten ausgegeben. Die erste gibt die Anzahl der Wörter zurück, die zweite die Anzahl der Zeilen und die letzte Spalte zeigt an wie viele Zeichen die entsprechende Datei besitzt. Hier eine Beispielausgabe:
titan% wc test.html
96 455 3273 test.html
Man kann aber auch nur eine einzige Spalte anzeigen lassen. Hierfür gibt es die Schalter –w
(words, dt. Wörter), –l
(lines, dt. Linien) und –c
(characters, dt. Zeichen).
titan% wc -l test.html
96 test.html
Einen weiteren halbwegs interessanten Schalter besitzt wc
noch: –L
gibt die Zeichenanzahl der längsten Zeile zurück. Wer also z.B. eine e-Mail, einen Report oder eine Quelldatei auf die für Mails und Newsgroups typischen Linienlängen von 72 oder 80 Zeichen überprüfen möchte (sofern man keine automatischen Zeilenumbrüche aktiviert hat), kann dies wie folgt tun:
titan% wc -L mail.txt
86 mail.txt
comm
ist ein noch simpleres Tool. Es wird immer mit zwei Dateinamen als Agrumente aufgerufen:
titan% comm datei1 datei2
Projekt 1
Projekt 3
Projekt 4
Projekt 6
Projekt 6
Anhand dieser Ausgabe lässt sich der Inhalt der Dateien rekonstruieren. datei1
enthält die Zeilen “Projekt 4” und “Projekt 6”, datei2
aber nicht. datei2
enthält die Zeile “Projekt 3” die datei1
nicht enthält. Beide Dateien enthalten jeweils die Zeilen “Projekt 1” und “Projekt 6”. Anzumerken ist, dass somit datei1
zweimal die Zeile “Projekt 6” enthält, denn die ersten zwei Spalten geben an welche Zeilen nur in der aktuellen Datei vorhanden sind. Mit den Schaltern –1
, –2
oder –3
lassen sich die entsprechenden Spalten ausblenden, wobei die Argumente beliebig kombiniert werden können: comm -12 datei1 datei2
gibt somit aus, welche Zeilen in beiden Dateien vorkommen.
Das war’s auch schon für heute. Viel Spaß beim Ausprobieren!
PS: Ein viel mächtigeres, aber auch komplexes Tool zum Vergleichen von Dateien mit Linux ist diff
. Es arbeitet zeichenbasiert und wird gern von Entwicklern benutzt. Ein man diff
gibt wie immer mehr Informationen darüber aus.