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
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?
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
Velmi dobrý příspěvek.
Vysvětlíte to velmi dobře a jdete rovnou k věci.