Príkaz Grep: výkonný nástroj na vyhľadanie textu z terminálu

Príkaz grep

Takmer každý, kto má počítač alebo kto s ním pracuje, pozná klávesovú skratku Ctrl + F na vyhľadanie textu. Písmeno „F“ pochádza z anglického výrazu „Find“, „to find“ a je možné ho použiť napríklad na vyhľadanie textu na webovej stránke. Táto skratka je k dispozícii aj v mnohých aplikáciách. Existujú programy, ktoré používajú „B“ na „Vyhľadávanie“, ale tieto skratky fungujú, iba ak sme v aplikácii a pri otvorenom súbore. V systéme Linux máme veľmi silné nástroje, ktoré môžeme spustiť z terminálu, a ak chceme nájdite akýkoľvek text, ktorý je v našom tíme, použijeme príkaz grep.

grep Je to príkaz, ktorý nám pomôže nájsť text v súbore, ktorý označíme. Jeho názov pochádza z g / re / p, príkazu, ktorý pracuje pre niečo podobné v textovom editore Unix / Linux. Rovnako ako mnoho iných príkazov, grep Má veľa dostupné možnosti, ktoré pridáme vo forme písmen a každý bude slúžiť inej úlohe. Kombináciou týchto možností budeme môcť vykonávať komplexné vyhľadávanie v jednom alebo viacerých súboroch. Tu vám ukážeme všetko, čo potrebujete vedieť.

s grep nájdeme akýkoľvek text v ľubovoľnom súbore

Najskôr vysvetlíme dostupné možnosti:

  • -i: nebude rozlišovať medzi malými a veľkými písmenami.
  • -w: prinútiť ho, aby našiel iba konkrétne slová.
  • -v: vyberie riadky, ktoré sa nezhodujú.
  • -n: zobrazuje číslo riadku s požadovanými slovami.
  • -h: odstráni predponu z názvu súboru Unix na výstupe.
  • -r: prehľadáva adresáre rekurzívne.
  • -R: like -r ale postupujte podľa všetkých symbolických odkazov.
  • -l: zobrazuje iba názvy súborov s vybranými riadkami.
  • -c- Zobrazí iba jeden počet na súbor vybraných riadkov.
  • -Farba: Zobrazí zodpovedajúce vzory vo farbách.

Na obrázku, ktorý smerujete do tohto článku, som hľadal slovo „Images“ v súbore „830.desktop“, ktorý sa nachádza v tejto ceste. Ako vidíte, napísal som:

grep Imágenes /home/pablinux/Documentos/830.desktop

Pamätajte, že v tomto článku napíšeme príklady, ktoré je potrebné upraviť podľa našich preferencií vyhľadávania. Povedaním „Súbor“, „Slovo“ atď. Budeme odkazovať na súbor s jeho cestou. Keby som práve napísal „grep Images 830.desktop“, dostal by som správu, že súbor neexistuje. Alebo by to tak bolo, pokiaľ by sa súbor nenachádzal v koreňovom adresári.

Ďalšími príkladmi by boli:

  • grep -i obrázky /home/pablinux/Documentos/830.desktop, kde „obrázky“ by boli slovo, ktoré chceme nájsť, a zvyšok súbor s jeho cestou. V tomto príklade by sa hľadali „obrázky“ v súbore „830.desktop“ bez rozlíšenia malých a veľkých písmen.
  • grep -R obrázky: prehľadalo by všetky riadky adresára a všetky jeho podadresáre, kde sa nachádza slovo „images“.
  • grep -c príklad test.txt: toto by nás vyhľadalo a zobrazilo by sa celkový počet prípadov, keď sa v súbore s názvom „test.txt“ objaví „example“.

S grep môžeme vyhľadávať aj súbory

Ak chceme nájsť súbor 830.desktop, napíšeme nasledujúci príkaz:

grep 830.desktop

Toto vykoná a vyhľadajte súbor «830.desktop» v našom osobnom priečinkuTo znamená, že ak sa súbor nachádza v osobnom priečinku iného používateľa, nenájde sa. Toto je najbežnejšia vec na svete, pretože používateľ nemá povolenie na prístup k obsahu iného bez svojho hesla.

Ako vykonávať rekurzívne vyhľadávania

grep umožňuje nám to tiež vykonávať vyhľadávanie podľa opakujúcich sa pravidiel alebo pokynov. Napríklad si prečítajte všetky súbory v každom adresári, ktoré obsahujú slovo „Pablinux“. K tomu napíšeme:

grep -r Pablinux /home/

Dobre:

grep -R Pablinux /home/

Výsledky pre program „Pablinux“ uvidíme na samostatnom riadku, pred ktorým bude uvedený názov súboru, v ktorom bol nájdený. Pokiaľ nechceme vo výstupe dát vidieť názvy súborov, použijeme voľbu -h (z „skryť“; skryť):

grep -h -R Pablinux /home/

Môžeme sa spojiť s voľbami a napísať „-hR“ bez úvodzoviek.

Ako robiť presné vyhľadávania slov

Niekedy existujú súbory, ktoré obsahujú to, čo hľadáme, aby sme našli niečo iné. Môže sa nám to napríklad stať zloženými slovami a vyhľadaním výrazu „lesy“ nájdeme výraz „rangers“. Ak chceme nájsť presné slovo použijeme voľbu -w:

grep -w bosques /home/pablinux/Documentos/vacaciones.txt

Vyššie uvedený príkaz by vyhľadal „lesy“, ignorujúc strážcov, v súbore „vacation.txt“ na označenej ceste. Ak chceme hľadať dve rôzne slová, použijeme príkaz egrep:

egrep -w bosques|plantas /ruta/del/archivo

Zistite, koľkokrát sa slovo nachádza v súbore

grep je tiež schopný spočítajte, koľkokrát sa slovo objaví v spise. Použijeme na to voľbu -c:

grep -c prueba /ruta/al/archivo

Pridaním možnosti -n, čo uvidíme, je číslo riadku, v ktorom sa slovo nachádza.

Spätné vyhľadávanie

Môžeme to urobiť aj opačne, to znamená vyhľadať riadky, ktoré neobsahujú slovo. Použijeme na to voľbu -v, ktorá by vyzerala takto:

grep -v la ruta/al/archivo

Vyššie uvedený príkaz by zobrazil všetky riadky, ktoré neobsahovali slovo „the“. To sa môže hodiť v dokumentoch alebo zoznamoch, v ktorých sa slovo opakovane opakuje, a z nejakého dôvodu musíme získať prístup k zvyškom riadkov.

Prístup k informáciám o systéme pomocou grep

PC model

grep nielenže je schopný prehľadávať súbory. Je to tiež schopný zobraziť informácie o systéme. Na predchádzajúcom screenshote vidíme, ako nám ukazuje, aký model PC máme (viem, že to nie je najvýkonnejší notebook na svete). Použili sme na to príkaz:

cat /proc/cpuinfo | grep -i 'Model'

Dobre:

grep -i 'Model' /proc/cpuinfo

Ak chceme vidieť názvy diskových jednotiek, napíšeme:

dmesg | egrep '(s|h)d[a-z]'

Ako uvádzať iba zhodné názvy súborov

Ak chceme zobraziť zoznam, ktorý obsahuje iba názvy súborov, ktoré zodpovedajú vyhľadávaniu, použijeme možnosť -l, ako je uvedené nižšie:

grep -l 'main' *.c

A ak chceme vidieť slovo vo farbách, napíšeme:

grep --color palabra /ruta/al/archivo

Ako vidíte, príkaz grep je veľmi silný nástroj Stojí to za to najmä v prípadoch, keď si nepamätáme, kde sme niečo napísali, alebo v programovaní. Okrem toho nám pomáha zistiť informácie o systéme spôsobom, ktorý sa bude páčiť milovníkom terminálu. Má tento sprievodca príkazom, ktorý vám pomôže nájsť texty, užitočný pre vás grep?


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   nordi dijo

    Dobrý deň!
    Keď hovoríte, že sa Grep používa aj na vyhľadávanie súborov, nemyslím si, že je to správne, pretože ak spustíte grep EXPRESSION a neodovzdáte mu súbor, počká na vstup dát zo štandardného vstupu.
    Podľa manuálnej stránky:
    grep prehľadá pomenované vstupné SÚBORY po riadkoch obsahujúcich zhodu s daným VZOROM. Ak nie sú zadané žiadne súbory alebo ak je zadaný súbor „-“, grep prehľadá štandardný vstup.
    Môžete ho teda použiť v potrubiach, ako je ten, ktorý analyzuje výstup / proc / cpuinfo odovzdaním výstupu tohto príkazu ako vstupu do grepu, čo môžete vykonať.
    Pozdrav

  2.   ana dijo

    Veľmi dobrý príspevok.
    Vysvetlíte to veľmi dobre a idete priamo k veci.