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

Grep naredba

Gotovo svako ko ima računar ili ko radi sa njim znaće tasterske prečice Ctrl + F za pronalaženje teksta. "F" na engleskom znači "Pronađi", "pronaći" i može se koristiti, na primjer, za pronalaženje teksta na web stranici. Ova je prečica također dostupna u mnogim aplikacijama, postoje programi koji koriste "B" za "Pretraživanje", ali ove prečice 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 koristiti naredbu grep.

grep To je naredba koja će nam pomoći da pronađemo 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 ih mnogo dostupne opcije koje ćemo dodati u obliku slova i svaki će služ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.

con grep naći ćemo bilo koji tekst u bilo kojoj datoteci

Prije svega objasnit ćemo dostupne opcije:

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

Na slici koja imate naslov ovog članka potražio sam riječ "Slike" u datoteci "830.desktop" koja se nalazi na toj putanji. 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 željama pretraživanja. Kad kažemo "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 to bilo tako ako datoteka nije bila u osnovnom direktoriju.

Ostali primjeri bi bili:

  • grep -i images /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" neosjetljive na mala i velika slova.
  • grep -R slike: pretraživao bi sve redove 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.

Sa grep takođe možemo pretraživati ​​datoteke

Ako je ono što ž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 ličnoj mapiDrugim riječima, ako se datoteka nalazi u ličnoj mapi drugog korisnika, neće biti pronađena. Ovo je najnormalnija stvar na svijetu jer korisnik nema dozvolu za pristup sadržaju drugog bez svoje lozinke.

Kako izvoditi rekurzivna pretraživanja

grep to nam takođe omogućava izvršavajte pretrage u skladu sa ponavljajućim pravilima ili smjernicama. Na primjer, pročitajte sve datoteke u svakom direktorijumu koje sadrže riječ "Pablinux". Za ovo ćemo napisati:

grep -r Pablinux /home/

O 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, koristit ć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 tač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 pretragom "šume" možemo pronaći "čuvare". Ako želimo pronaći tač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, koristit ćemo naredbu egrep:

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

Znajte koliko se puta riječ pojavljuje u datoteci

grep takođe je sposoban za prebrojite koliko se puta riječ pojavljuje u datoteci. Za ovo ćemo koristiti opciju -c:

grep -c prueba /ruta/al/archivo

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

Obrnuti traženje

Možemo i suprotno, tj. traži redove koji ne sadrže riječ. Za ovo ćemo koristiti opciju -v, koja bi bila sljedeća:

grep -v la ruta/al/archivo

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

Pristup sistemskim informacijama pomoću grep

PC model

grep nije sposoban samo za pretragu unutar datoteka. Takođe je u mogućnosti pregledati sistemske informacije. Na prethodnom snimku zaslona možemo vidjeti kako nam pokazuje koji model računara imamo (znam da to nije najmoćniji laptop na svijetu). Za ovo smo koristili naredbu:

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

O dobro:

grep -i 'Model' /proc/cpuinfo

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

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

Kako navesti samo odgovarajuća imena datoteka

Ako želimo vidjeti listu sa samo imenima datoteka koje se podudaraju s pretragom, 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 To je a vrlo moćan alat To vrijedi 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 sistemu na način koji će se svidjeti ljubiteljima terminala. Je li vam ovaj vodič o naredbi za pronalaženje tekstova bio koristan grep?


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   nordi rekao je

    Hello!
    Kad kažete da se Grep koristi i za traženje datoteka, mislim da to nije tačno, jer ako pokrenete grep EXPRESSION i ne prenesete mu datoteku, on će pričekati unos podataka sa standardnog ulaza.
    Prema stranici sa uputstvima:
    grep pretražuje imenovane ulazne DATOTEKE za linije koje sadrže podudaranje s datim UZORKOM. Ako nije navedena nijedna datoteka ili je data datoteka „-“, grep pretražuje standardni unos.
    Zbog toga ga možete koristiti u cjevovodima, poput onog koji raščlanjuje izlaz / proc / cpuinfo prosljeđivanjem izlaza ove naredbe kao ulaza u grep da biste mogli pretraživati.
    Hvala!

  2.   Ana rekao je

    Vrlo dobar post.
    Vrlo dobro to objašnjavate i prelazite pravo na stvar.