Finde alle Dateien mit spezifischem Text mit grep unter Linux

grep -rnw '/path/to/somewhere/' -e 'pattern'
  • -r oder -R ist rekursiv,
  • -n ist die Zeilennummer, und
  • -w steht für “das ganze Wort suchen (match the whole word).
  • -l (kleines L) zeigt nur den Dateinamen der passenden Dateien an, nicht das Ergebnis selbst.
  • -e ist das bei der Suche verwendete Muster
  • -I binarys überspringen
  • -i steht für ignore case (Gross-/Kleinschreibung ignorieren)

Daneben können auch die Flags --exclude--include--exclude-dir für eine effiziente Suche verwendet werden:

  • Damit werden nur die Dateien durchsucht, die die Erweiterungen .c oder .h haben:
    grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
  • Dies schließt die Suche nach allen Dateien aus, die mit der Erweiterung .o enden:
    grep --exclude=\*.o -rnw '/path/to/somewhere/' -e "pattern"
  • Bei Verzeichnissen ist es möglich, ein oder mehrere Verzeichnisse mit dem Parameter --exclude-dir auszuschließen. So werden beispielsweise die Verzeichnisse dir1/dir2/ und alle Verzeichnisse, die mit *.dst/ übereinstimmen, ausgeschlossen:
    grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/search/' -e "pattern"

Es kann auch Folgendes genutzt werden:

grep -r "string to be searched"  /path/to/dir

Das r steht für rekursiv, es wird also im angegebenen Path und allen Unterverzeichnissen gesucht. Dies zeigt den Dateinamen an und gibt die Zeile in der Datei aus, in der die Zeichenfolge erscheint.

Das Ganze würde auch mit find gehen. Im folgenden Beispiel wird in allen Javascript Dateien (*.js) gesucht:

find . -name '*.js' -exec grep -i 'string to search for' {} \; -print

Dies gibt die Zeilen in den Dateien aus, in denen der Text vorkommt, aber nicht den Dateinamen.

Zusätzlich zu diesem Befehl können wir auch Folgendes schreiben:

grep -rn "String to search" /path/to/directory/or/file 

-r: rekursiv suchen 
n: Zeilennummer für Ergebnisse anzeigen

Für weitere Optionen, siehe man grep

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Vielleicht gefällt dir auch folgendes?

.user.ini auf NGINX ausblenden

Die “.user.ini”-Datei, die Wordfence erstellt, kann vertrauliche Informationen enthalten, und der öffentliche Zugriff darauf sollte eingeschränkt werden. Wenn NGINX genutzt ist, muss man das selber

Mehr lesen »

php-fpm Optimierung

Ich nutze php-fpm und mir sind starke Performance-Probleme bei der Verwendung von WordPress aufgefallen. Die Oberfläche reagierte träge, oft gab es lange Wartezeiten. Zur php-fpm

Mehr lesen »

Rspamd: From Blacklist

Eine Blacklist für Wörter und Zeichenketten für den Absender / From einer Email lässt sich in Rspamd anhand des Moduls Multimap und Regex umsetzen. Einfach

Mehr lesen »

Rspamd Bayes Filter reset

Rspamd ist eine weit verbreitete E-Mail- und Spam-Filterlösung. Es besteht aus einer Reihe von regelbasierten Filtern, Blacklists, Greylisting und auch einem selbstlernenden Bayes-Filter. Manchmal kann

Mehr lesen »
WordPress Cookie Plugin von Real Cookie Banner