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 datotekePrimjer:
$ egrep debian uzorak datoteke.txtU 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_uzorakPrimjer:
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_datotekePrimjer:
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 -APrimjer:
$ 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 -BPrimjer:
$ 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 -CPrimjer:
$ 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 datotekeObjasnite 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_.txtDali 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.