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 liestwcvon 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:
| Option | Langform | Beschreibung |
|---|---|---|
-l | --lines | Anzahl der Zeilen |
-w | --words | Anzahl der Wörter |
-m | --chars | Anzahl der Zeichen |
-c | --bytes | Anzahl der Bytes |
-L | --max-line-length | Lä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.