Spôsoby platby Abuse

Vyhľadávanie súborov podľa obsahu v Linuxe: ack a ripgrep

03.05.2023, 23:33

Používanie vyhľadávania súborov podľa obsahu v systéme Linux môže výrazne znížiť čas a námahu pri hľadaní konkrétnych informácií vo veľkých a zložitých súborových systémoch.

Prečo potrebujete vyhľadávať súbory podľa obsahu

Toto vyhľadávanie môže byť užitočné najmä vtedy, keď chcete nájsť súbory, ktoré obsahujú určitý reťazec alebo kľúčové slovo, alebo keď chcete nájsť všetky súbory, ktoré zodpovedajú určitému vzoru alebo kritériu.

Vyhľadávanie súborov podľa obsahu možno použiť na rôzne úlohy, ako je napríklad vyhľadávanie:

  • konkrétny text vo veľkých textových súboroch
  • konfiguračné súbory a skripty obsahujúce určité nastavenia alebo príkazy
  • súbory, ktoré obsahujú špecifické údaje, napríklad mená používateľov alebo telefónne čísla
  • súbory podľa typu obsahu, napríklad vyhľadanie všetkých súborov obsahujúcich obrázky JPEG alebo dokumenty PDF.

Všeobecným účelom vyhľadávania súborov podľa obsahu je uľahčiť prácu so súborovým systémom a nájsť v ňom potrebné informácie.

ack

Začnime nástrojom ack. Bol vytvorený v roku 2005 ako alternatíva k grepu a rýchlo si získal popularitu medzi vývojármi.

Oproti grepu má niekoľko výhod, medzi ktoré patrí napr:

  • inteligentnejšie vyhľadávanie súborov a výnimiek. Ack v predvolenom nastavení vyhľadáva len v súboroch, ktoré by mohli mať zmysel, napríklad s vylúčením priečinkov .svn alebo .git. A môžete si pridať vlastné pravidlá a výnimky;
  • Ack v predvolenom nastavení prehľadáva skryté súbory a adresáre;
  • Ack sa nesnaží vyhľadávať všade, dokonca ani v systémových priečinkoch, ako grep. To znamená, že môžete ľahko nájsť súbory skryté vo vašom systéme.

Príklady použitia programu ack:

  • Nájdite všetky súbory v aktuálnom priečinku a jeho podpriečinkoch, ktoré obsahujú slovo " test": ack "test"
  • To isté, ale s vylúčením súborov s príponou .bak: ack "test" --ignore-file=match:/.bak$/
  • Nájsť všetky súbory v aktuálnom priečinku obsahujúce reťazec "hello" a vypísať prvé 2 riadky každého súboru: ack "hello" --heading --max-count=2

ripgrep

Druhým zaujímavým nástrojom je ripgrep. V mnohom sa podobá na ack, ale používa rýchlejší vyhľadávací algoritmus, čo ho robí obzvlášť užitočným pre veľké projekty.

Tu je niekoľko príkladov:

  1. Nájdite všetky súbory v aktuálnom priečinku a jeho podpriečinkoch, ktoré obsahujú slovo "test": rg "test"
  2. To isté, ale s vylúčením súborov s príponou .bak: rg "test" --glob "!*.bak"
  3. Nájsť všetky súbory v aktuálnom priečinku, ktoré obsahujú reťazec "hello", a vypísať prvé 2 riadky každého súboru: rg "hello" --heading --max-columns=2

Na záver stojí za zmienku fzf. Nie je to len vyhľadávač reťazcov ako ack a ripgrep. Fzf sa používa ako nástroj na vyhľadávanie súborov, priečinkov a položiek v zozname. Inak funguje podobne ako ack/ripgrep, ale s pridanou možnosťou živého filtrovania výsledkov. Tu je niekoľko príkladov:

  • Vyhľadávanie súborov začínajúcich na písmeno F v počítači: locate F | fzf -m
  • Ukončite aktuálny priečinok a prejdite do požadovaného adresára: cd **<TAB> | fzf
  • Vyberte revíziu SVN a skopírujte číslo do schránky: svn log | fzf --reverse --ansi | awk '{print $1}' | pbcopy

Dúfajme, že tieto nástroje vám pomôžu rýchlo a efektívne nájsť potrebné súbory a reťazce. Nech si vyberiete ktorýkoľvek z nich, všetky ponúkajú pokročilé vyhľadávanie, ktoré môže výrazne urýchliť vašu prácu.