wc — Zeilen, Wörter und Bytes zählen

Praxis-Guide zu wc: Zeilen, Wörter, Zeichen und Bytes in Dateien oder Pipes zählen — vom schnellen wc -l bis zur längsten Zeile.

wc (word count) zählt Zeilen, Wörter, Zeichen und Bytes – egal ob in Dateien oder in einer Pipe. Am häufigsten brauchst du wc -l für die Zeilenzahl, etwa um Logeinträge, Treffer oder Dateien zu zählen. Übergibst du mehrere Dateien, hängt wc automatisch eine Summenzeile an. Wichtig zu wissen: -c zählt Bytes, -m dagegen Zeichen (bei UTF-8 also Umlaute korrekt als ein Zeichen), und mit < datei statt einem Argument unterdrückst du den Dateinamen in der Ausgabe. Dieser Guide zeigt dir die nützlichsten Varianten für den Alltag.

Grundlagen

wc <file> — Zeilenzahl, Wortzahl und Bytezahl einer Datei anzeigen.

wc README.md

wc <file1> <file2> — Zählungen für mehrere Dateien mit einer Summenzeile anzeigen.

wc src/*.js

<command> | wc — Zeilen, Wörter und Bytes aus einer Pipe zählen.

cat access.log | wc

Zeilen zählen

wc -l <file> — Die Anzahl der Zeilen einer Datei zählen.

wc -l access.log

wc -l <file1> <file2> — Zeilen in mehreren Dateien mit Gesamtsumme zählen.

wc -l *.csv

<command> | wc -l — Die Anzahl der Zeilen einer Befehlsausgabe zählen.

grep 'ERROR' app.log | wc -l

wc -l < <file> — Zeilen zählen, ohne den Dateinamen auszugeben (Eingabe umleiten).

wc -l < data.csv

Wörter zählen

wc -w <file> — Die Anzahl der Wörter einer Datei zählen.

wc -w essay.txt

wc -w <file1> <file2> — Wörter in mehreren Dateien mit Gesamtsumme zählen.

wc -w *.md

<command> | wc -w — Wörter einer Befehlsausgabe zählen.

echo 'hello world foo bar' | wc -w

Zeichen und Bytes zählen

wc -c <file> — Die Anzahl der Bytes einer Datei zählen.

wc -c image.png

wc -m <file> — Die Anzahl der Zeichen zählen (multibyte-fähig, beachtet die Locale).

wc -m utf8-text.txt

wc -c < <file> — Die Dateigröße in Bytes ohne Dateinamen ermitteln.

wc -c < archive.tar.gz

Längste Zeile

wc -L <file> — Die Länge der längsten Zeile einer Datei anzeigen.

wc -L config.json

wc -L <file1> <file2> — Die Länge der längsten Zeile je Datei mit Maximum anzeigen.

wc -L *.py

<command> | wc -L — Die Länge der längsten Zeile einer Befehlsausgabe ermitteln.

cat /etc/hosts | wc -L

Optionen kombinieren

wc -lw <file> — Zeilen- und Wortzahl zusammen anzeigen.

wc -lw README.md

wc -lc <file> — Zeilen- und Bytezahl anzeigen.

wc -lc access.log

wc -lwm <file> — Zeilen, Wörter und Zeichen anzeigen (multibyte-fähig).

wc -lwm article.txt

Pipelines und Praxismuster

find <path> -name '<glob>' | wc -l — Zählen, wie viele Dateien einem Muster entsprechen.

find src/ -name '*.js' | wc -l

find <path> -name '<glob>' -exec cat {} + | wc -l — Gesamtzahl der Codezeilen über alle passenden Dateien zählen.

find src/ -name '*.py' -exec cat {} + | wc -l

git diff --name-only | wc -l — Die Anzahl der geänderten Dateien im Git-Arbeitsbaum zählen.

git log --oneline | wc -l — Die Gesamtzahl der Commits in einem Git-Repository zählen.

ps aux | wc -l — Die Anzahl laufender Prozesse zählen (eins für die Kopfzeile abziehen).

ls -1 <path> | wc -l — Die Anzahl der Dateien und Verzeichnisse in einem Ordner zählen.

ls -1 /var/log/ | wc -l

grep -c '' <file> — Alternative Zeilenzählung mit grep (entspricht wc -l).

grep -c '' data.csv

wc -l <files> | sort -rn | head -<n> — Die Dateien mit den meisten Zeilen finden.

wc -l src/*.js | sort -rn | head -10

wc -l <files> | tail -1 — Nur die Gesamtzeilenzahl über mehrere Dateien ermitteln.

wc -l *.log | tail -1

awk 'END {print NR}' <file> — Alternative Zeilenzählung mit awk (nützlich in größeren awk-Skripten).

awk 'END {print NR}' access.log

Fazit

wc ist das schnellste Werkzeug für ein Gefühl von Größe und Umfang und sitzt in unzähligen Pipelines am Ende einer Zählung. Beachte den feinen Unterschied zwischen -c (Bytes) und -m (Zeichen): Bei reinem ASCII sind beide gleich, bei UTF-8-Text mit Umlauten oder Emojis weichen sie ab. wc -l zählt streng genommen die Zeilenumbrüche – endet eine Datei ohne abschließenden Zeilenumbruch, wird die letzte Zeile nicht mitgezählt. Und nutzt du die Eingabeumleitung wc -l < datei statt wc -l datei, bekommst du nur die nackte Zahl ohne Dateinamen, was sich gut in Skripten weiterverwenden lässt.

Verwandte Kommandos

  • sort – Zeilen sortieren
  • uniq – doppelte Zeilen filtern und zählen
  • grep – Zeilen nach Mustern durchsuchen (zählt mit -c ebenfalls)