Um unter Linux Text in Dateien zu finden ist grep ein mächtiges Tool welches viele Optionen zum suchen ermöglicht.
grep -rnwi '/Pfad/zum/Ordner' -e 'Suchbegriff'
Bedeutung der Optionen:
-r
bedeutet rekursiv, also über mehrere Ordnerebenen-w
wählt nur solche Zeilen aus, deren Treffer aus vollständigen Wörtern bestehen. So wird bei der Suche nach «Bad» keine «Badewanne» gefunden-n
gibt die Zeilennummer vor jedem Treffer aus-i
unterscheide nicht zwischen Groß- und Kleinschreibung.
Nur in bestimmten Dateitypen suchen / Dateitypen ausschliessen
Mit include und exclude kann in bestimmten Dateien gesucht werden, respektive bestimmte Dateitypen ausgeschlossen werden:
grep -rnwi --include=\*.{php,css} '/var/www/html/' -e "main"
grep -rnwi --exclude=\*.{php,css} '/var/www/html/' -e "main"
Bestimmte Ordner ausschliessen
Sollen beim Suchen bestimmte Ordner ausgeschlossen werden, so können diese über --exclude-dir
ausgeschlossen werden. Wird dem Namen des Ordners ein * angehängt, kann auch nach allen Ordnern welche mit einem Namen beginnen oder enden gesucht werden.
grep -rwni --exclude-dir={lib,wp-*,admin} '/var/www/html/' -e "main"
Im obigen Beispiel werden die Ordner «lib», «admin» und alle Ordner welche mit «wp-» beginnen ausgeschlossen.
Weitere Optionen
-A
gibt zusätzlich NUM Zeilen vor dem Kontext aus-B
gibt zusätzlich NUM Zeilen nach dem Kontext aus-C
gibt zusätzlich NUM Zeilen vor und nach dem Kontext aus. Zwischen zusammenhängende Gruppen von Treffern werden Zeilen mit «–» eingefügt-c
unterdrückt die normale Ausgabe und gibt stattdessen für jede Eingabedatei an, wieviele Zeilen auf die regular expression passen-e
verwende Muster als regular expression. Nützlich um Ausdrücke zu schützen, die mit einem-
beginnen.-H
gibt den Dateinamen vor jedem Treffer aus.-P
verwendet Perl regular expressions.