Categories
Korn Shell / Bash Shell Programmierung

Zeichenketten in mehreren Dateien und Verzeichnissen suchen

Unter Unix bietet grep eine einfache Lösung um Zeichenketten in Dateien zu finden. Möchte man in allen Dateien eines Verzeichnisses und den Unterverzeichnissen eine bestimmte Zeichenkette (z.B BLABLA) suchen, so reicht der Befehl

grep BLABLA *

nicht, da keine Unterverzeichnisse durchsucht werden. Eine Alternative ist die Kombination aus den Befehlen: find, xargs und grep.

find . -type file | xargs grep -i BLABLA
find . -type file -print | xargs grep -i BLABLA

egrep ist eine weitere mächtige Alternative. Mit der Option -R ist es in der Lage rekursiv Unterverzeichnisse zu durchsuchen:

egrep -R BLABLA *

Das funktioniert auch Super in der Windows bash!

Allerdings kann man grep nicht auf binäre Dateien anwenden. In diesem Fall hilft der Befehl strings weiter.

strings binary_file | grep BLABLA

Die Datei binary_file sei eine binäre Datei.