Ich suche die Zeichenfolge foo=
in Textdateien in einem Verzeichnisbaum. Es ist auf einem gemeinsamen Linux-Computer, ich habe Bash-Shell:
grep -ircl "foo=" *
In den Verzeichnissen befinden sich auch viele Binärdateien, die mit "foo =" übereinstimmen. Da diese Ergebnisse nicht relevant sind und die Suche verlangsamen, möchte ich, dass grep die Suche in diesen Dateien überspringt (hauptsächlich JPEG- und PNG-Bilder). Wie würde ich das machen?
Ich weiß, dass es die --exclude=PATTERN
und --include=PATTERN
Optionen gibt, aber wie ist das Musterformat? Die Manpage von grep sagt:
--include=PATTERN Recurse in directories only searching file matching PATTERN.
--exclude=PATTERN Recurse in directories skip file matching PATTERN.
Die Suche auf grep include , grep include exclude , grep exclude und Varianten hat nichts Relevantes gefunden
Wenn es eine bessere Möglichkeit gibt, nur in bestimmten Dateien zu greifen, bin ich alles dafür; Das Verschieben der fehlerhaften Dateien ist keine Option. Ich kann nicht nur bestimmte Verzeichnisse durchsuchen (die Verzeichnisstruktur ist ein großes Durcheinander, mit allem überall). Außerdem kann ich nichts installieren, daher habe ich mit gängigen Tools zu tun (wie grep oder dem vorgeschlagenen Fund ).
--exclude-dir=.svn
, dass Grep überhaupt nicht darauf
grep -r --exclude-dir=var "pattern" .