GNU/Linux >> Znalost Linux >  >> Linux

Rychlý způsob, jak vyhledat určité řádky kódu prostřednictvím mnoha souborů v projektu

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ář


Linux
  1. Nejlepší způsob, jak prohledávat historii společnosti Shell?

  2. Jak hledat soubory podle velikosti a přípony?

  3. Debian – hledejte poslední upravené soubory za poslední 2 minuty ve vašem domovském adresáři, které obsahují určitý řetězec?

  1. Hledat soubory s Gui?

  2. Rychle vyhledejte soubory v Linuxu pomocí příkazu Locate

  3. Použijte Najít a najít k vyhledání souborů v Linuxu

  1. Jak vyhledáváte soubory obsahující konce řádků DOS (CRLF) pomocí grep v Linuxu?

  2. Jak mohu vyhledat víceřádkový vzor v souboru?

  3. Je potřeba regulární výraz (grep) pro víceřádkové vyhledávání