
Ich suche nach Dateien, die eine Zeichenfolge enthalten. Mein Befehl:
grep -rwl '/path/' -e "string"
Ich möchte das Ergebnis auf Pfade beschränken, die eine andere Zeichenfolge enthalten. Das kann ich so machen:
grep -rwl '/path/' -e "string" | grep 'path_string'
Ich möchte die Ausführung, wenn möglich, optimieren, indem ich zunächst nur Pfade mit dem „path_string“ betrachte. Wie kann ich das erreichen?
Antwort1
Sie können find
beispielsweise -path
verwenden
find /path -path '*path_string*' -type f -exec grep -qw 'string' {} \; -print
Dadurch wird /path
nach Dateinamen gesucht, die einem Shell-Muster entsprechen *path_string*
, und es werden grep
nur diese Dateien ausgeführt. Bei Erfolg werden ihre Namen ausgedruckt.
1: die Musterübereinstimmung wird auf den gesamten Dateinamen angewendet, beginnend mit/path/