Der Befehl wc (word count) zählt Zeilen, Wörter, Zeichen und Bytes in Dateien. Er gehört zu den grundlegenden Werkzeugen für die Textanalyse auf der Kommandozeile.

Syntax des wc-Befehls

wc [OPTION]... [DATEI]...
  • OPTION - Bestimmt, welche Zählwerte ausgegeben werden.
  • DATEI - Eine oder mehrere Eingabedateien. Ohne Dateiangabe liest wc von der Standardeingabe.

Ein “Wort” ist dabei eine Zeichenkette, die durch Leerzeichen, Tabulatoren oder Zeilenumbrüche getrennt ist.

Grundlegende Verwendung

Ohne Optionen gibt wc vier Spalten aus: Zeilen, Wörter, Bytes und Dateiname.

wc /proc/cpuinfo

Die Ausgabe sieht etwa so aus:

448 3632 22226 /proc/cpuinfo
  • 448 ist die Anzahl der Zeilen.
  • 3632 ist die Anzahl der Wörter.
  • 22226 ist die Anzahl der Bytes.

Bei Verwendung der Standardeingabe entfällt der Dateiname in der Ausgabe.

Wichtige Optionen

Mit diesen Optionen wählst du aus, welche Werte angezeigt werden:

OptionLangformBeschreibung
-l--linesAnzahl der Zeilen
-w--wordsAnzahl der Wörter
-m--charsAnzahl der Zeichen
-c--bytesAnzahl der Bytes
-L--max-line-lengthLänge der längsten Zeile

Bei mehreren Optionen erscheint die Ausgabe in dieser Reihenfolge: Zeilen, Wörter, Zeichen, Bytes, maximale Zeilenlänge.

Zeilen zählen

Die Option -l ist die am häufigsten verwendete. Sie zeigt nur die Zeilenanzahl:

wc -l /etc/passwd
44 /etc/passwd

Das ist nützlich, um schnell die Größe von Konfigurationsdateien oder Log-Einträgen zu ermitteln.

Wörter zählen

Mit -w erhältst du die Wortanzahl:

wc -w /etc/passwd
87 /etc/passwd

Zeichen und Bytes zählen

Die Option -m zählt Zeichen, während -c Bytes zählt. Bei reinen ASCII-Texten sind diese Werte identisch. Bei UTF-8-kodierten Texten mit Umlauten oder Sonderzeichen unterscheiden sie sich:

wc -m -c datei.txt

Mehrere Dateien verarbeiten

Bei mehreren Dateien zeigt wc Werte für jede Datei und eine Gesamtsumme:

wc /proc/cpuinfo /proc/meminfo
448 3632 22226 /proc/cpuinfo
 49  143  1363 /proc/meminfo
497 3775 23589 insgesamt

Optionen kombinieren

Du kannst mehrere Optionen kombinieren. Dieses Beispiel zeigt Zeilenanzahl und längste Zeile:

wc -lL /proc/cpuinfo
448 792 /proc/cpuinfo

Praktische Anwendungen

Dateien im Verzeichnis zählen

In Kombination mit find zählst du Dateien in einem Verzeichnis:

find . -type f | wc -l

Benutzer auf dem System zählen

Die Anzahl der Systembenutzer ermittelst du so:

getent passwd | wc -l

Codezeilen in einem Projekt zählen

Alle Python-Dateien in einem Projekt durchzählen:

find . -name "*.py" -exec cat {} + | wc -l

Prozesse eines Benutzers zählen

Die Anzahl laufender Prozesse für einen Benutzer:

ps -u benutzername | wc -l

Ziehe 1 ab für die Header-Zeile.

Dateien aus einer Liste verarbeiten

Die Option --files0-from liest Dateinamen aus einer Datei, getrennt durch NUL-Zeichen. Das ist praktisch in Kombination mit find:

find /etc -name 'host*' -print0 | wc -l --files0-from=-
 4 /etc/host.conf
27 /etc/avahi/hosts
 1 /etc/hostname
14 /etc/hosts
46 insgesamt

Zusammenfassung

Der Befehl wc zählt Zeilen, Wörter, Zeichen und Bytes in Textdateien. Am häufigsten wird er mit -l zum Zählen von Zeilen verwendet, oft in Kombination mit anderen Befehlen über Pipes.

Verwandte Artikel