V Linuxu/Unixu existuje nástroj příkazového řádku s názvem grep
můžete jej použít k vyhledání řetězce ve více souborech. Například, pokud bych chtěl hledat strcpy
ve všech souborech:
~/sandbox$ grep -rs "strcpy"*
test.c: strcpy(OSDMenu.name,"OSD MENU");
-r
poskytuje vyhledávání rekurzivně, takže získáte prohledané všechny soubory ve všech adresářích (z aktuálního). -s
ignoruje varování v případě, že narazíte na nečitelné soubory.
Nyní, pokud jste chtěli vyhledat něco vlastního a nepamatujete si případ, existují možnosti jako -i
aby bylo možné vyhledávat bez ohledu na malá a velká písmena.
~/sandbox$ grep -rsi "myint" *
test.c: int myInt = 5;
test.c: int MYINT = 10;
Regulární výrazy můžete použít také v případě, že jste zapomněli, jak se přesně to, co jste hledali, jmenovalo (jméno „grep“ pochází z příkazu sed g/re/p -- global/regular expression/print:
~/sandbox$ grep -rsi "my.*" *
test.c: int myInt = 5;
test.c: int MYINT = 10;
test.c: float myfloat = 10.9;
nainstalujte cygwin, pokud nepoužíváte *nix a použijte find/grep, např.
find . -name '*\.[ch]' | xargs grep -n 'myfuncname'
Můžete použít grep k prohledávání souborů pomocí terminálu/příkazového řádku.
grep -R "string_to_search" .
-R, chcete-li být rekurzivní, hledejte také ve všech podadresářích
Potom řetězec, který chcete
Pak je umístění, . pro aktuální adresář