Sie können ack verwenden. Es ist wie grep für Quellcode. Sie können damit Ihr gesamtes Dateisystem scannen.
Mach einfach:
ack 'text-to-find-here'
In Ihrem Stammverzeichnis.
Sie können auch reguläre Ausdrücke verwenden, den Dateityp angeben usw.
AKTUALISIEREN
Ich habe gerade The Silver Searcher entdeckt, das wie ack ist, aber 3-5x schneller als es und sogar Muster von einem .gitignore ignoriert Datei.
Gehen Sie wie folgt vor:
grep -rnw '/path/to/somewhere/' -e 'pattern'
-roder-Rist rekursiv,-nZeilennummer ist, und-wsteht für Übereinstimmung mit dem ganzen Wort.-l(Kleinbuchstabe L) kann hinzugefügt werden, um nur den Dateinamen übereinstimmender Dateien anzugeben.-eist das während der Suche verwendete Muster
Zusammen mit diesen --exclude , --include , --exclude-dir Flags könnten für eine effiziente Suche verwendet werden:
- Dadurch werden nur die Dateien mit der Erweiterung .c oder .h durchsucht:
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"
- Für Verzeichnisse ist es möglich, ein oder mehrere Verzeichnisse mit dem
--exclude-dirauszuschließen Parameter. Beispielsweise werden dadurch die Verzeichnisse dir1/, dir2/ und alle, die mit *.dst/:
übereinstimmen, ausgeschlossen
grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"
Das funktioniert sehr gut für mich, um fast den gleichen Zweck wie Sie zu erreichen.
Weitere Optionen finden Sie unter man grep .
Verwenden Sie grep -ilR :
grep -Ril "text-to-find-here" /
isteht für Groß-/Kleinschreibung ignorieren (in Ihrem Fall optional).Rsteht für rekursiv.lsteht für "den Dateinamen anzeigen, nicht das Ergebnis selbst"./steht für das Starten an der Wurzel Ihrer Maschine.