wc (englisch word count) zählt in Dateien oder in der Standardeingabe, wie viele Zeilen, Wörter, Zeichen und Bytes ein Text enthält. Das Tool ist in jeder Linux- und Unix-Umgebung vorinstalliert und ein Standard-Werkzeug für Shell-Skripte und Datenanalyse im Terminal.
Grundlagen
Der einfachste Aufruf liefert drei Zahlen und den Dateinamen:
$ wc brief.txt
24 152 1024 brief.txt
Die Ausgabe bedeutet: 24 Zeilen, 152 Wörter, 1024 Bytes. Über die Bash-Befehle lässt sich wc direkt in Kommandozeilen und Skripten einsetzen.
Die wichtigsten Optionen
wc -l— nur die Anzahl der Zeilen ausgebenwc -w— nur die Anzahl der Wörter ausgebenwc -m— nur die Anzahl der Zeichen ausgeben (UTF-8-korrekt)wc -c— nur die Anzahl der Bytes ausgebenwc -L— die Länge der längsten Zeile ausgeben
Typische Einsatzmuster
Sehr oft arbeitet wc mit grep, sort, uniq und cut sowie head und tail in einer Pipeline zusammen:
$ grep -c "ERROR" app.log # Anzahl der Fehlerzeilen
$ wc -l *.log # Zeilenzahl aller Logdateien
$ ls -1 | wc -l # Anzahl der Dateien im Ordner
$ cat protokoll.txt | wc -w # Wörter eines Textes zählen
Wer die Zeilen der Ausgabe eines beliebigen Befehls zählt, nutzt die Pipe: history | wc -l zeigt zum Beispiel, wie viele Einträge die Shell-Historie besitzt.
Praktische Beispiele
$ wc -l /var/log/syslog # Logzeilen zählen
$ wc -w artikel.txt # Wörter für ein Dokument
$ wc -m datei.txt # Zeichen in UTF-8 zählen
$ wc -L programm.py # längste Codezeile finden
Kombination mit xargs
Zusammen mit xargs lassen sich Ergebnisse weiterverarbeiten, etwa wenn ein Skript die Gesamtzahl der Zeilen aller Quelldateien benötigt. find liefert die Dateiliste, wc die Summe:
$ find src -name "*.py" -print0 | xargs -0 wc -l
Die Ausgabe endet mit der Gesamtsumme über alle Dateien.
Verwandte Grundlagen: Pipeline und sed-Befehle für weitere Textverarbeitung im Terminal.