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
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?
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
Veľmi dobrý príspevok.
Vysvetlíte to veľmi dobre a idete priamo k veci.