Můžete použít ack. Je to jako grep pro zdrojový kód. Můžete s ním skenovat celý systém souborů.
Stačí udělat:
ack 'text-to-find-here'
Ve vašem kořenovém adresáři.
Můžete také použít regulární výrazy, určit typ souboru atd.
AKTUALIZACE
Právě jsem objevil The Silver Searcher, který je jako ack, ale 3-5x rychlejší než on a dokonce ignoruje vzory z .gitignore
soubor.
Postupujte takto:
grep -rnw '/path/to/somewhere/' -e 'pattern'
-r
nebo-R
je rekurzivní,-n
je číslo řádku a-w
znamená shodu celého slova.-l
(malé L) lze přidat a zadat pouze název souboru odpovídajících souborů.-e
je vzor použitý při vyhledávání
Spolu s těmito --exclude
, --include
, --exclude-dir
příznaky by mohly být použity pro efektivní vyhledávání:
- Tímto prohledáte pouze ty soubory, které mají příponu .c nebo .h:
grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
- Toto vyloučí prohledávání všech souborů končících příponou .o:
grep --exclude=\*.o -rnw '/path/to/somewhere/' -e "pattern"
- U adresářů je možné vyloučit jeden nebo více adresářů pomocí
--exclude-dir
parametr. Například to vyloučí dirs dir1/, dir2/ a všechny odpovídající *.dst/:
grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"
To pro mě funguje velmi dobře, k dosažení téměř stejného účelu jako vy.
Další možnosti viz man grep
.
Použijte grep -ilR
:
grep -Ril "text-to-find-here" /
i
znamená ignorovat velikost písmen (ve vašem případě volitelné).R
znamená rekurzivní.l
znamená „zobrazit název souboru, nikoli samotný výsledek“./
znamená spuštění v kořenovém adresáři vašeho počítače.