Wizards of FOSS Blog


Suchtreffer zählen mit grep

Das UNIX-Kommando grep durchsucht Datenströme und filtert entsprechend eines angegebenen Musters. Häufig interessieren nicht die Suchtreffer selber, sondern nur die Anzahl der Treffer. Folgendes Konstrukt wird dann verwendet, indem die Ausgabe über eine Pipe an das Kommando wc weitergeleitet wird:

grep Muster Datei | wc -l

wc -l zählt die einzelnen Zeilen und gibt die Anzahl als Zahlenwert aus. Das gleiche erreicht man auch mit der grep-Option -c:

$ cat datei
 text text
$ grep text datei | wc -l
 1
$ grep -c datei
 1

Das Vorgehen ist stimmig und man erhält die Anzahl der Suchtreffer, wenn sich in jeder Zeile genau ein Treffer befindet. Um korrekt zu zählen und wirklich die genaue Anzahl zu erhalten, hilft die grep-Option -o. Das bewirkt, dass grep zeilenweise nur den exakten Suchtreffer ohne den umgebenden Kontext ausgibt. Wird diese Ausgabe wieder mit wc -l gezählt, stimmt die Anzahl.

$ cat datei
 text text
$ grep -o text datei
 text
 text
$ grep -o text datei | wc -l
 2


Next entry

Previous entry

Related entries

Similar entries


Comments

Comments are closed.


Pingbacks

Pingbacks are closed.


Trackbacks