Příkaz Grep: výkonný nástroj pro vyhledání textu z terminálu

Příkaz Grep

Téměř každý, kdo má počítač nebo s ním pracuje, bude znát klávesovou zkratku Ctrl + F pro vyhledání textu. Písmeno „F“ pochází z angličtiny „Najít“, „najít“ a lze jej použít například k vyhledání textu na webové stránce. Tato zkratka je k dispozici také v mnoha aplikacích. Existují programy, které používají „B“ pro „Hledat“, ale tyto zkratky fungují, pouze pokud jsme uvnitř aplikace a při otevřeném souboru. V Linuxu máme velmi silné nástroje, které můžeme spustit z Terminálu a pokud chceme najděte jakýkoli text, který je v našem týmu, použijeme příkaz grep.

grep Je to příkaz, který nám pomůže najít text v souboru, který označíme. Jeho název pochází z g / re / p, příkazu, který pracuje pro něco podobného v textovém editoru Unix / Linux. Jako mnoho jiných příkazů, grep Má hodně dostupné možnosti, které přidáme ve formě písmen a každý bude sloužit jinému úkolu. Kombinací těchto možností budeme moci provádět komplexní vyhledávání v jednom nebo více souborech. Zde vám ukážeme vše, co potřebujete vědět.

s grep najdeme jakýkoli text v libovolném souboru

Nejprve vysvětlíme dostupné možnosti:

  • -i: nerozlišuje velká a malá písmena.
  • -w: přinutit jej najít pouze konkrétní slova.
  • -v: vybere řádky, které se neshodují.
  • -n: zobrazuje číslo řádku s požadovanými slovy.
  • -h: odstraní předponu z názvu souboru Unix ve výstupu.
  • -r: prohledá adresáře rekurzivně.
  • -R: like -r ale postupujte podle všech symbolických odkazů.
  • -l: zobrazuje pouze názvy souborů s vybranými řádky.
  • -c- Zobrazuje pouze jeden počet na soubor vybraných řádků.
  • -Barva: Zobrazí odpovídající vzory v barvách.

Na obrázku, který máte v záhlaví tohoto článku, jsem hledal slovo „Images“ v souboru „830.desktop“, který je v této cestě. Jak vidíte, napsal jsem:

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

Pamatujte, že v tomto článku budeme psát příklady, které je třeba upravit podle našich preferencí vyhledávání. Když řekneme „Soubor“, „Slovo“ atd., Budeme odkazovat na soubor s jeho cestou. Kdybych právě napsal „grep Images 830.desktop“, dostal bych zprávu, že soubor neexistuje. Nebo by to bylo, pokud by soubor nebyl v kořenovém adresáři.

Další příklady by byly:

  • grep -i images /home/pablinux/Documentos/830.desktop, kde „obrázky“ by bylo slovo, které chceme najít, a zbytek souboru s jeho cestou. Tento příklad vyhledá „obrázky“ v souboru „830.desktop“ bez rozlišování malých a velkých písmen.
  • grep -R obrázky: prohledá všechny řádky adresáře a všechny jeho podadresáře, kde se nachází slovo „images“.
  • grep -c příklad test.txt: toto by nás hledalo a ukázalo by, kolikrát se „příklad“ objeví v souboru s názvem „test.txt.

S grep můžeme také hledat soubory

Pokud chceme najít soubor 830.desktop, napíšeme následující příkaz:

grep 830.desktop

Tím provedete a vyhledejte soubor «830.desktop» v naší osobní složceTo znamená, že pokud je soubor v osobní složce jiného uživatele, nebude nalezen. Toto je nejběžnější věc na světě, protože uživatel nemá oprávnění k přístupu k obsahu jiného bez svého hesla.

Jak provádět rekurzivní vyhledávání

grep také nám to umožňuje provádět vyhledávání podle opakujících se pravidel nebo pokynů. Například si přečtěte všechny soubory v každém adresáři, které obsahují slovo „Pablinux“. K tomu napíšeme:

grep -r Pablinux /home/

Dobře:

grep -R Pablinux /home/

Výsledky pro „Pablinux“ uvidíme na samostatném řádku, kterému předchází název souboru, ve kterém byl nalezen. Pokud nechceme vidět názvy souborů ve výstupu dat, použijeme volbu -h (z „skrýt“; skrýt):

grep -h -R Pablinux /home/

Můžeme se připojit k možnostem a napsat "-hR" bez uvozovek.

Jak provádět přesné vyhledávání slov

Někdy existují soubory, které obsahují to, co chceme hledat pro něco jiného. Může se nám to například stát složenými slovy a hledáním „lesů“ najdeme „rangers“. Pokud chceme najít přesné slovo použijeme volbu -w:

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

Výše uvedený příkaz by hledal „lesy“, ignorující rangers, v souboru „Vacation.txt“ v uvedené cestě. Pokud chceme hledat dvě různá slova, použijeme příkaz Egrep:

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

Zjistěte, kolikrát se v souboru objeví slovo

grep je také schopen spočítat, kolikrát se slovo objeví v souboru. K tomu použijeme volbu -c:

grep -c prueba /ruta/al/archivo

Přidáním možnosti -n, co uvidíme, je číslo řádku, ve kterém se slovo objeví.

Zpětné vyhledávání

Můžeme také udělat opak, to znamená hledat řádky, které neobsahují slovo. K tomu použijeme volbu -v, která by vypadala následovně:

grep -v la ruta/al/archivo

Výše uvedený příkaz by zobrazil všechny řádky, které neobsahovaly slovo „the“. To se může hodit v dokumentech nebo seznamech, ve kterých se slovo mnohokrát opakuje, az nějakého důvodu musíme získat přístup ke zbytku řádků.

Přístup k informacím o systému pomocí grep

PC model

grep není schopen pouze prohledávat soubory. Je to také schopen zobrazit informace o systému. Na předchozím screenshotu vidíme, jak nám ukazuje, jaký model PC máme (vím, že to není nejvýkonnější notebook na světě). K tomu jsme použili příkaz:

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

Dobře:

grep -i 'Model' /proc/cpuinfo

Pokud chceme vidět názvy diskových jednotek, napíšeme:

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

Jak vypsat pouze shodné názvy souborů

Pokud chceme zobrazit seznam pouze s názvy souborů, které odpovídají vyhledávání, použijeme volbu -l, jak je znázorněno níže:

grep -l 'main' *.c

A pokud chceme vidět slovo v barvách, napíšeme:

grep --color palabra /ruta/al/archivo

Jak vidíte, příkaz grep je velmi silný nástroj Stojí to za to zejména v případech, kdy si nepamatujeme, kde jsme něco napsali, nebo v programování. Kromě toho nám pomáhá zjistit informace o systému způsobem, který se bude líbit milovníkům Terminálu. Má tento průvodce na příkaz k vyhledání textů pro vás užitečné grep?


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   nordi řekl

    Dobrý den!
    Když řeknete, že Grep se také používá k vyhledávání souborů, nemyslím si, že je to správné, protože pokud spustíte grep EXPRESSION a nepředáte mu soubor, počká na vstup dat ze standardního vstupu.
    Podle manuálové stránky:
    grep prohledá pojmenované vstupní SOUBORY po řádcích obsahujících shodu s daným VZOREM. Pokud nejsou zadány žádné soubory nebo je zadán soubor „-“, grep prohledá standardní vstup.
    Proto jej můžete použít v potrubích, jako je ten, který analyzujete výstup / proc / cpuinfo předáním výstupu tohoto příkazu jako vstupu do grepu, můžete provést vyhledávání.
    pozdravy

  2.   Ann řekl

    Velmi dobrý příspěvek.
    Vysvětlíte to velmi dobře a jdete rovnou k věci.