GNU/Linux >> Znalost Linux >  >> Linux

Jak v Linuxu najdu všechny soubory obsahující konkrétní text?

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.

Linux
  1. Jak vyhledávat v konkrétních souborech odpovídajících vzoru?

  2. Jak najít všechny soubory vlastněné konkrétním uživatelem v Unixu/Linuxu?

  3. Jak najít všechny řídké soubory v Linuxu

  1. Jak používat příkaz Grep k vyhledání textu v souborech

  2. Příkaz Linux:Jak „najít“ pouze textové soubory?

  3. Jak najít všechny soubory končící na .rb s Linuxem?

  1. Jak najít všechny soubory, které neobsahují textový řetězec?

  2. Jak najít konkrétní text pomocí GREP v systému Linux

  3. Jak gzipovat všechny nebo konkrétní soubory v Linuxu