Mit einem Linux-Befehl könnt ihr ganz einfach nach bestimmten Text in Dateien suchen und die Dateien mit Verzeichnispfad anzeigen lassen. Wir zeigen, wie das geht.
Linux: Text in Dateien suchen – „find text in files“
Um in Linux nach einem bestimmten Text in Dateien zu suchen, nutzt ihr den Befehl „grep“:, es gibt also kein konkretes „find text in files“-Kommando.
Befehl: grep -rnwi '/Pfad/zu/Ordner/' -e 'Textschnipsel'
Ausgabe-Syntax: 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, um Text in Dateien zu suchen (Linux)
Sucht im Home-Verzeichnis und Unterordnern des Nutzers „zina“nach Dateien, die genau das Wort „lorem“ enthalten:
grep -rnwi '/home/zina/' -e 'lorem'
Beachte: Der obige Befehl findet „lorem“ (klein geschrieben) und „Lorem“ (groß geschrieben). Für Unterscheidung zwischen Groß- und Kleinschreibung müsst ihr den Befehl ohne -i nutzen, also: 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"
Der GREP-Befehl ist vielseitiger als man denkt und kann oft angewendet werden, um Listen zu filtern. Was ihr mit dem GREP-Befehl noch alles tun könnt, zeigen wir euch hier:
Weitere hilfreiche Befehle haben wir hier erklärt: