Grep naredba: moćan alat za pronalaženje teksta iz terminala

Naredba Grep

Gotovo svatko tko ima računalo ili tko s njim radi znat će tipkovne prečace Ctrl + F za pronalaženje teksta. "F" dolazi od "Find", "to find" na engleskom jeziku, a može se koristiti, na primjer, za pronalaženje teksta na web stranici. Ovaj je prečac dostupan i u mnogim aplikacijama, postoje programi koji koriste "B" za "Pretraživanje", ali ti prečaci rade samo ako smo unutar aplikacije i s otvorenom datotekom. U Linuxu imamo vrlo moćne alate koje možemo pokrenuti s terminala i ako želimo pronaći bilo koji tekst koji se nalazi u našem timu mi ćemo upotrijebiti naredbu grep.

grep To je naredba koja će nam pomoći pronaći tekst unutar datoteke koju naznačimo. Ime mu dolazi od g / re / p, naredbe koja radi za nešto slično u Unix / Linux uređivaču teksta. Kao i mnoge druge naredbe, grep Ima mnogo dostupne opcije koje ćemo dodati u obliku slova a svaki će poslužiti drugačiji zadatak. Kombinacijom ovih opcija moći ćemo izvršiti složena pretraživanja u jednoj ili više datoteka. Ovdje ćemo vam pokazati sve što trebate znati.

s grep pronaći ćemo bilo koji tekst u bilo kojoj datoteci

Prije svega objasnit ćemo dostupne mogućnosti:

  • -i: neće razlikovati velika i mala slova.
  • -w: prisilite ga da pronađe samo određene riječi.
  • -v: odabire retke koji se ne podudaraju.
  • -n: prikazuje broj retka s traženim riječima.
  • -h: uklanja prefiks iz naziva datoteke Unix u izlazu.
  • -r: rekurzivno pretražuje direktorije.
  • -R: poput -r, ali slijedite sve simboličke poveznice.
  • -l: prikazuje samo nazive datoteka s odabranim redovima.
  • -c- Prikazuje samo jedan broj po datoteci odabranih redaka.
  • -Boja: Prikazuje odgovarajuće uzorke u bojama.

Na slici čiji ste naslov ovog članka potražio sam riječ "Slike" u datoteci "830.desktop" koja se nalazi na tom putu. Kao što vidite, napisao sam:

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

Imajte na umu da ćemo u ovom članku napisati primjere koji se moraju modificirati u skladu s našim postavkama pretraživanja. Kad izgovorimo "Datoteka", "Riječ" itd., Mislit ćemo na datoteku s njezinom stazom. Da sam upravo napisao "grep Images 830.desktop", primio bih poruku u kojoj se kaže da datoteka ne postoji. Ili bi barem tako bilo ako datoteka nije bila u korijenskom direktoriju.

Ostali primjeri bili bi:

  • grep -i slike /home/pablinux/Documentos/830.desktop, gdje bi "slike" bila riječ koju želimo pronaći, a ostatak datoteka sa svojim putem. Ovaj primjer tražio bi "slike" u datoteci "830.desktop", neosjetljivo na mala i velika slova.
  • grep -R slike: pretraživao bi sve retke direktorija i sve njegove poddirektorijume u kojima se nalazi riječ "slike".
  • grep -c primjer test.txt: ovo bi nas tražilo i pokazalo ukupan broj pojavljivanja "primjera" u datoteci nazvanoj "test.txt.

S grepom također možemo tražiti datoteke

Ako želimo pronaći datoteku 830.desktop, napisat ćemo sljedeću naredbu:

grep 830.desktop

Ovo će izvesti a potražite datoteku «830.desktop» u našoj osobnoj mapiDrugim riječima, ako se datoteka nalazi u osobnoj mapi drugog korisnika, neće biti pronađena. To je najnormalnija stvar na svijetu jer korisnik nema dozvolu za pristup sadržaju drugog bez svoje lozinke.

Kako izvoditi rekurzivna pretraživanja

grep dopušta nam i obavljati pretraživanja podložna ponavljajućim pravilima ili smjernicama. Na primjer, pročitajte sve datoteke u svakom direktoriju koje sadrže riječ "Pablinux". Za ovo ćemo napisati:

grep -r Pablinux /home/

Pa dobro:

grep -R Pablinux /home/

Rezultate za "Pablinux" vidjet ćemo u zasebnom retku kojem prethodi ime datoteke u kojoj je pronađena. Ako ne želimo vidjeti imena datoteka u izlazu podataka, upotrijebit ćemo opciju -h (iz "sakrij"; sakrij):

grep -h -R Pablinux /home/

Možemo se pridružiti opcijama i napisati "-hR" bez navodnika.

Kako izvršiti točno pretraživanje riječi

Ponekad postoje datoteke koje sadrže ono što želimo potražiti za nečim drugim. Na primjer, to nam se može dogoditi u složenim riječima, a traženjem "šuma" možemo pronaći "čuvare". Ako želimo pronaći točnu riječ koristit ćemo opciju -w:

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

Gornja naredba tražila bi "šume", zanemarujući čuvare, u datoteci "vacation.txt" na naznačenoj putanji. Ako želimo tražiti dvije različite riječi, upotrijebit ćemo naredbu egrep:

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

Znajte koliko se puta riječ pojavljuje u datoteci

grep također je sposoban za prebrojite koliko se puta riječ pojavljuje u datoteci. Za to ćemo upotrijebiti opciju -c:

grep -c prueba /ruta/al/archivo

Dodavanjem opcije -n ono što ćemo vidjeti je broj retka u kojem se riječ pojavljuje.

Obrnuta pretraživanja

Možemo učiniti i suprotno, tj. traži retke koji ne sadrže riječ. Za to ćemo upotrijebiti opciju -v, koja bi bila sljedeća:

grep -v la ruta/al/archivo

Gornja naredba prikazala bi sve retke koji nisu sadržavali riječ "the". To može dobro doći u dokumentima ili na popisima u kojima se riječ ponavlja više puta i iz nekog razloga moramo pristupiti ostatku redaka.

Pristup informacijama o sustavu pomoću grep

Model računala

grep ne samo da je sposoban pretraživati ​​unutar datoteka. Također je u mogućnosti pregledati informacije o sustavu. Na prethodnom snimku zaslona možemo vidjeti kako nam pokazuje koji model računala imamo (znam da to nije najsnažnije prijenosno računalo na svijetu). Za ovo smo koristili naredbu:

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

Pa dobro:

grep -i 'Model' /proc/cpuinfo

Ako želimo vidjeti nazive diskovnih jedinica, napisat ćemo:

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

Kako navesti samo odgovarajuće nazive datoteka

Ako želimo vidjeti popis sa samo imenima datoteka koje odgovaraju pretraživanju, upotrijebit ćemo opciju -l kao što je prikazano dolje:

grep -l 'main' *.c

A ako želimo riječ vidjeti u bojama, napisat ćemo:

grep --color palabra /ruta/al/archivo

Kao što vidite, naredba grep je vrlo moćan alat Vrijedi to posebno u slučajevima kada se ne sjećamo gdje smo nešto napisali ili u programiranju. Uz to, pomaže nam da saznamo informacije o sustavu na način koji će se svidjeti ljubiteljima terminala. Je li vam ovaj vodič o naredbi za pronalaženje tekstova bio koristan grep?


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   nordi dijo

    Pozdrav!
    Kad kažete da se Grep koristi i za traženje datoteka, mislim da to nije točno jer ako pokrenete grep EXPRESSION i ne prenesete datoteku na njega, on će pričekati unos podataka sa standardnog ulaza.
    Prema stranici s priručnikom:
    grep pretražuje imenovane ulazne DATOTEKE za retke koji sadrže podudaranje s datim UZORKOM. Ako nije navedena nijedna datoteka ili je dana datoteka "-", grep pretražuje standardni unos.
    Dakle, možete ga koristiti u cjevovodima, poput onog koji raščlanjuje izlaz / proc / cpuinfo prosljeđujući izlaz ove naredbe kao ulaz u grep da biste mogli pretražiti.
    pozdravi

  2.   zbirka anegdota dijo

    Vrlo dobar post.
    To vrlo dobro objasnite i prijeđete ravno na stvar.