Linux: find text in files
„Find text in files“ wird in Linux mit dem mächtigen Befehl grep erledigt:
Befehl:
grep -rnwi '/Pfad/zu/Ordner/' -e 'Textschnipsel'
Ausgabe: Pfad zur Datei : Zeilennummer : Textzeile
-r bedeutet rekursiv. -n zeigt die Zeile der Datei an, wo der Textschnipsel gefunden wurde. -w bedeutet, dass der Textschnipsel als Ganzes übereinstimmen muss. Wer nach „Haus“ mit -w sucht, findet nicht „Haustür“. -i bedeutet, dass nicht zwischen Groß- und Kleinschreibung unterschieden wird. -l kann optional ergänzt werden, um nur den Dateipfad auzugeben, in welcher der Textschnipsel vorkommt.
Beispiele:
Sucht im Home-Verzeichnis und Unterordnern des Nutzers „zina“nach Dateien, die genau das Wort „lorem“ enthalten:
grep -rnwi '/home/zina/' -e 'lorem'
Beachte: Findet „lorem“ (klein geschrieben) und „Lorem“ (groß geschrieben). Für Unterscheidung zwischen Groß- und Kleinschreibung müsst ihr den Befehl ohne -i nutzen: grep -rnw '/home/zina/' -e 'lorem'.
Nur nach Dateien mit Dateiendung .c oder .h suchen (–inlcude):
grep --include=\*.{c,h} -rnw '/home/zina/' -e "lorem"
Nur nach Dateien ohne Dateiendung .o suchen (–exclude):
grep --exclude=*.o -rnw '/home/zina/' -e "lorem"
Bei der Suche die Verzeichnisse „dir1“, „dir2“ und alle, die auf „test“ enden, ausschließen:
grep --exclude-dir={dir1,dir2,*test} -rnw '/home/zina/' -e "lorem"