grep

Linux egrep naredba s primjerima

Linux egrep naredba s primjerima
Naredba egrep pripada obitelji naredbe grep koja se koristi za pretraživanje uzoraka u Linuxu. Ako ste koristili grep naredbu, egrep radi isto kao i grep -E (grep Extended regex '). Egrep skenira određenu datoteku, redak u redak i ispisuje crte koje sadrže niz pretraživanja / regularni izraz. U ovom ćemo članku objasniti 15 korisnih primjera egrep naredbi koje će pomoći početnicima, pa čak i stručnjacima da izvrše smislena pretraživanja u Linuxu. Izveli smo ove primjere na sustavu Debian 10 Buster, ali oni se mogu lako preslikati na većinu Linux distribucija.

Primjer 1: Traženje određenog niza u datoteci

Ovo je najčešća upotreba naredbe egrep. Ono što radite je da navedete niz koji želite tražiti i naziv datoteke u kojem želite potražiti taj niz. Rezultat zatim prikazuje cijeli redak koji sadrži traženi niz.

Sintaksa:

$ egrep "file_string" naziv datoteke

Primjer:

$ egrep debian uzorak datoteke.txt

U ovom primjeru tražio sam riječ “debian” u navedenoj tekstualnoj datoteci. Možete vidjeti kako rezultati prikazuju cijeli redak koji sadrži riječ “debian”:

Primjer 2: Traženje određenog niza u više datoteka

Pomoću naredbe egrep možete pretraživati ​​niz među više datoteka koje se nalaze u istom direktoriju. Jednostavno morate biti malo precizniji u pružanju "uzorka" za pretraživane datoteke. To će postati jasnije na primjeru koji ćemo iznijeti.

Sintaksa:

$ egrep "niz_potraga" naziv_datoteke_uzorak

Primjer:

Ovdje ćemo tražiti riječ "debian" u svim jezicima .txt datoteke određivanjem uzorka naziva datoteke kako slijedi:

$ egrep “debian” *.txt

Naredba je ispisala sve retke, zajedno s imenima datoteka koje sadrže riječ "debian" iz svih .txt datoteke u trenutnom direktoriju.

Primjer 3: Rekurzivno pretraživanje niza u cijelom direktoriju

Kada želite potražiti niz u svim datotekama iz direktorija i njegovih poddirektorijuma, to možete učiniti pomoću zastavice -r s naredbom egrep.

Sintaksa:

$ egrep -r "string_potrage" *

Primjer:

U ovom primjeru tražim riječ "uzorak" u datotekama cijelog trenutnog direktorija (Preuzimanja).

$ egrep -r "uzorak" *

Rezultati sadrže sve retke, zajedno s imenima datoteka, koji sadrže riječ "uzorak" iz svih datoteka u direktoriju Preuzimanja i njegovih podmapa.

Primjer 4: Provođenje pretraživanja bez velikih i malih slova

Pomoću oznake -i možete koristiti naredbu egrep za ispis rezultata na temelju niza za pretraživanje, a da ne brinete o njegovom slučaju.

Sintaksa:

$ egrep -i naziv datoteke "search_string"

Primjer:

Ovdje tražim riječ “debian” i želim da rezultati prikazuju sve retke iz datoteke koji sadrže riječ “debian” ili “Debian, bez obzira na slučaj.

$ egrep -i naziv datoteke "search_string"

Možete vidjeti kako mi je zastavica -i pomogla pri dohvaćanju svih redaka koji sadrže niz pretraživanja kroz slučajno neosjetljivo pretraživanje.

Primjer 5: Traženje niza kao pune riječi, a ne kao podniza

Kada obično tražite niz kroz egrep, on ispisuje sve riječi koje sadrže niz kao podniz. Na primjer, potraga za nizom "on" ispisat će sve riječi koje sadrže niz "on" poput "on", "only", "monitor", "clone" itd. Ako želite da rezultati prikazuju samo riječ "on" kao punu riječ, a ne kao podniz, možete upotrijebiti zastavicu -w s egrep.

Sintaksa:

$ egrep -w naziv datoteke "search_string"

Primjer:

Ovdje tražim niz "on" u oglednoj datoteci:

$ egrep -i "on" samplefile.txt

Iz gornjeg rezultata možete vidjeti da i on sadrži riječ "samo". Međutim, to nije ono što želim, jer isključivo tražim riječ "uključeno". Dakle, ovo je naredba koju ću umjesto toga upotrijebiti:

$ egrep -iw “on” samplefile.txt

Sada moji rezultati pretraživanja uključuju samo retke koji sadrže riječ "uključeno" kao cijelu riječ.

Primjer 6: Ispis samo imena datoteka koja sadrže niz

Ponekad samo želimo dohvatiti imena datoteka koja sadrže određeni niz, umjesto da ispisujemo retke koji ga sadrže. To se može učiniti pomoću zastavice -l (malo slovo L) s naredbom egrep.

Sintaksa:

$ egrep -l "obrazac_potraga" naziv_datoteke

Primjer:

Ovdje tražim niz "sample" u svim .txt datoteke u trenutnom direktoriju:

$ egrep -l uzorak *.txt

Rezultati pretraživanja ispisuju samo ime datoteka koje sadrže navedeni niz.

Primjer 7: Ispis samo niza za pretraživanje iz datoteke

Umjesto ispisa cijelog retka koji sadrži niz za pretraživanje, možete upotrijebiti naredbu egrep za ispis samog niza. Niz će se ispisati koliko se puta pojavi u navedenoj datoteci.

Sintaksa:

$ egrep -o naziv datoteke "search_string"

Primjer:

U ovom primjeru tražim riječ "Ovo" u svojoj datoteci.

$ egrep -o Ovaj sample_.txt

Napomena: Ova upotreba naredbe je korisna kada tražite niz temeljen na uzorku regularnog izraza. Redovne izraze detaljno ćemo objasniti u jednom od narednih primjera.

Primjer 8: Prikaz n broja redaka prije, poslije ili oko niza za pretraživanje

Ponekad je vrlo važno znati kontekst u datoteci u kojoj se koristi određeni niz. Egrep dobro dođe u smislu da se može koristiti za prikaz retka koji sadrži niz za pretraživanje, a također i određeni broj redaka prije, poslije i oko njega.

Ovo je uzorak tekstualne datoteke koju ću koristiti za objašnjavanje nadolazećih primjera:

N broj redaka Nakon niza za pretraživanje:

Korištenje zastavice A na sljedeći način prikazat će redak koji sadrži niz za pretraživanje i N broj redaka nakon njega:

$ egrep -A naziv datoteke "search_string"

Primjer:

$ egrep -A 2 "sample" samplefile.txt

N broj redaka Prije niza za pretraživanje:

Korištenje zastavice B na sljedeći način prikazat će redak koji sadrži niz za pretraživanje i N broj redaka prije njega:

$ egrep -B naziv datoteke "search_string"

Primjer:

$ egrep -B 2 "sample" samplefile.txt

N broj redaka Prije niza za pretraživanje:

Korištenje zastavice C na sljedeći način prikazat će redak koji sadrži niz za pretraživanje i N broj redaka prije i poslije njega:

$ egrep -C naziv datoteke "search_string"

Primjer:

$ egrep -C 2 "sample" samplefile.txt

Primjer 9: Podudaranje regularnog izraza u datotekama

Naredba egrep postaje snažnija dok pretražujete regularne izraze umjesto čvrstih nizova pretraživanja u datoteci.

Sintaksa:

$ egrep "RegularExpressions" naziv datoteke

Objasnite nam kako možete koristiti regularne izraze u pretraživanju egrepa:

Operator ponavljanja Koristiti
? Prethodna stavka prije ? nije obavezno i ​​podudara se najviše jedanput

* Prethodna stavka prije * podudarat će se nula ili više puta
+ Prethodna stavka prije + podudarat će se jedan ili više puta
n Prethodna se stavka točno podudara n broj puta.
n, Prethodna se stavka podudara n ili više puta
, m Prethodna se stavka podudara najviše m puta
n, m Prethodna se stavka podudara najmanje n puta, ali ne više od m puta

Primjer:

U sljedećem primjeru podudaraju se retci koji sadrže sljedeći izraz:

počevši od "Gnome" i završavajući na "programima"

Primjer 10: Isticanje niza za pretraživanje

Kada postavite varijablu okruženja GREP_OPTIONS kao dolje, dobivate svoj izlaz s nizom / uzorkom pretraživanja istaknutim u rezultatima:

$ sudo export GREP_OPTIONS = '- color = auto' GREP_COLOR = '100; 8'

Zatim možete tražiti niz na bilo koji način koji smo opisali u primjerima ovog članka.

Primjer 11: Izvođenje obrnutog pretraživanja u datoteci

Invertnim pretraživanjem podrazumijevamo da naredba egrep ispisuje sve u datoteci, osim redaka koji sadrže niz pretraživanja. Upotrijebit ćemo sljedeću oglednu datoteku da objasnimo obrnuto pretraživanje putem egrepa. Ispisali smo sadržaj datoteke pomoću naredbe cat:

Sintaksa:

$ egrep -v naziv datoteke "search_string"

Primjer:

Iz ogledne datoteke koju smo spomenuli želimo izostaviti redak koji sadrži riječ "dva" u izlazu, stoga ćemo upotrijebiti sljedeću naredbu:

$ egrep -v "dva" samplefile_.txt

Možete vidjeti kako izlaz sadrži sve iz uzorka datoteke, osim drugog retka koji je sadržavao niz za pretraživanje "dva".

Primjer 12: Izvođenje obrnutog pretraživanja na temelju više kriterija / obrasca pretraživanja

Pomoću zastavice -v također možete izvršiti naredbu egrep za izvršavanje obrnutog pretraživanja na temelju više od jednog niza / uzorka pretraživanja.

Za objašnjavanje ovog scenarija koristit ćemo istu datoteku uzorka koju smo spomenuli u primjeru 11.

Sintaksa:

$ egrep -v -e "string_pretraživanja" / ”uzorak” -e "niz_potrage" / "uzorak"
… naziv datoteke

Primjer:

Iz ogledne datoteke koju smo spomenuli želimo izostaviti retke koji sadrže riječi "jedan" i "dva" u izlazu, stoga ćemo upotrijebiti sljedeću naredbu:

$ egrep -v -e “jedan” -e “dva” samplefile_.txt

Dali smo dvije riječi koje se izostavljaju upotrebom zastavice -e, stoga će se izlaz pojaviti na sljedeći način:

Primjer 13: Ispis broja redaka koji odgovaraju nizu za pretraživanje

Umjesto ispisa pretraživanog niza iz datoteke ili linija koje ga sadrže, možete upotrijebiti naredbu egrep za brojanje i ispis broja redaka koji se podudaraju sa nizom. Ovaj se broj može dohvatiti pomoću zastavice -c s naredbom egrep.

Sintaksa:

$ egrep -c naziv datoteke "search_string"

Primjer:

U ovom ćemo primjeru koristiti zastavicu -c za brojanje broja redaka koji sadrže riječ "Ovo" u našoj datoteci uzorka:

$ egrep -c "Ovo" naziv datoteke

Ovdje također možete koristiti značajku obrnutog pretraživanja za brojanje i ispis broja redaka koji ne sadrže niz pretraživanja: 

$ grep -v -c "naziv_strane" naziv datoteke

Primjer 14: Prikaz broja retka u kojem se podudara niz

Pomoću zastavice -n možete izvršiti naredbu egrep za ispis podudarne linije zajedno s brojem retka koji sadrži niz za pretraživanje.

Sintaksa:

$ grep -n naziv datoteke "search_string"

Primjer:

$ grep -n "This" samplefile_.txt

Možete vidjeti kako se brojevi linija prikazuju u odnosu na rezultate pretraživanja.

Primjer 15: Prikaz položaja u datoteci u kojem se podudara niz pretraživanja

Ako želite znati položaj u datoteci na kojem postoji niz za pretraživanje, možete upotrijebiti zastavicu -b s naredbom egrep.

$ grep -o -b naziv datoteke "search_string"

Primjer:

$ grep -o -b "This" samplefile_.txt

Rezultati pretraživanja ispisuju pomake u bajtovima datoteke u kojoj postoji riječ za pretraživanje.Ovo je bila detaljna upotreba naredbe egrep. Upotrebom kombinacije zastavica objašnjenih u ovom članku možete izvršiti značajnija i složenija pretraživanja datoteka.

Najbolje igre za ručno praćenje
Oculus Quest nedavno je predstavio sjajnu ideju ručnog praćenja bez kontrolera. Sa sve većim brojem igara i aktivnosti koje izvršavaju podršku bilo fo...
Kako prikazati OSD prekrivač u aplikacijama i igrama na cijelom zaslonu za Linux
Igranje igara preko cijelog zaslona ili upotreba aplikacija u režimu preko cijelog zaslona bez ometanja može vas odsjeći od relevantnih informacija o ...
Top 5 karata za hvatanje igara
Svi smo vidjeli i voljeli streaming reprodukcije na YouTubeu. PewDiePie, Jakesepticye i Markiplier samo su neki od najboljih igrača koji su zaradili m...