Kako koristiti naredbu Grep u Linuxu

Razumijevanje naredbe grep s praktičnim primjerima za jednostavno filtriranje i prikaz sadržaja datoteke

GREP označava "Global Regular Expression Print". To je koristan uslužni program naredbenog retka koji nudi Linux, za traženje retka teksta koji odgovara uzorku koji je dao korisnik.

grep preuzima unos od korisnika u obliku nizova ili riječi koje korisnik želi pretraživati ​​u određenoj datoteci. Naredba zatim provjerava datoteku koju je korisnik odredio za ovaj uzorak, a zatim vraća retke koji odgovaraju danom uzorku.

Obavlja izvrstan posao filtriranjem sadržaja datoteke, čime naš zadatak olakšava pretraživanje određenog sadržaja na jednoj ili više datoteka istovremeno.

U ovom članku pogledajmo funkcioniranje grep zapovijed s pojedinim praktičnim primjerima u detalje.

Dostupne opcije sa grep naredba

Ovo su neke od osnovnih opcija koje ćete često koristiti s grep naredba.

OpcijaOpis
-iZa pretraživanje bez obzira na velika i mala slova
-rZa rekurzivno traženje svih datoteka u navedenom direktoriju i njegovim poddirektorijima
-cZa prikaz ukupnog broja pojavljivanja niza
-vZa prikaz nepodudarnih linija
-wFiltar za tu određenu riječ koja se koristi zasebno

Koristiti grep naredba

grep naredba se obično koristi s cijevi (|) korisnost. Može se implementirati s shell pipe-om kada ga želite koristiti s nekim drugim Linux naredbama. Iako, grep može se koristiti i zasebno bez cijevi (|) korisnost.

Pogledajmo neke od osnovnih sintaksa grep naredba sa i bez uslužnog programa cijevi.

Najprije ću vam pokazati primjer tekstualne datoteke koju ću koristiti za ilustraciju grep naredba.

INDIJA JE LIJEPA ZEMLJA LJUDI KOJI VOLE MIR. Indija stoji na tri stupa zakonodavne, izvršne i sudske vlasti. Indija je prekrasna zemlja ljudi koji vole mir. Indija se brine za ljude jer je njezin resurs kartezijanskim koordinatama važnost svih kartezijanskih koordinata. Slijede dva prazna reda. korištenje volovskih zaprega uobičajen je prizor u selu za agrarne poslove. Ovo je kraj datoteke uzorka.

grep koristi se s cijevi ( |)korisnost

grep naredba se može implementirati zajedno s drugim Linux naredbama pomoću shell cijevi. Na primjer, korištenjem mačka naredba za prikaz sadržaja datoteke, ali istovremeno slanje izlaza pomoću grep naredba za prikaz samo sadržaja koji želite vidjeti. To će biti jasnije kada prođemo kroz primjer.

Sintaksa:

[naredba] | grep [string]

Primjer:

mačka uzorak.txt | grep zakonodavno tijelo

Evo, koristio sam mačka naredba za prikaz nekih redaka iz datoteke 'sample.txt'. Prikazuju se samo oni retki koji u sebi sadrže riječ 'zakonodavstvo' i zanemaruju ostale retke.

Izlaz:

gaurav@ubuntu:~/workspace$ cat sample.txt | grep zakonodavna vlast indija stoji na tri stupa zakonodavne, izvršne i sudske vlasti. gaurav@ubuntu:~/radni prostor$

grep koristi se bez cijevi ( |)korisnost

grep može se čak koristiti izravno kao pojedinačna naredba bez korištenja cijevi ( | ) korisnost.

Sintaksa:

grep [string_to_be_searched] [naziv datoteke]

Primjer:

grep India sample.txt

Izlaz:

Indija je prekrasna zemlja ljudi koji vole mir. Indija brine o ljudima kao o svom resursu

Stoga sam koristio grep naredba izravno za filtriranje redaka koji sadrže niz "India" iz tekstualne datoteke "sample.txt".

Pretraživanje bez obzira na velika i mala slova grep naredba

Linux je vrlo oprezan u pogledu osjetljivosti na velika i mala slova kada aktiviramo naredbe na terminalu. To zahtijeva od korisnika da pazi na velika i mala slova stringa koji se stavlja u naredbu.

Pogledajmo to kroz primjer.

grep mir sample.txt

U ovom slučaju nećemo dobiti izlaz jer u datoteci uzorka ne postoji riječ "mir". Imamo riječ "Mir" s velikim "P". Riječ je ista, ali kada koristimo grep naredba bez ikakve opcije, traži točno podudaranje u datoteci, ne obazirući se na promjene u velikim slovima.

Da biste izbjegli ovu dvosmislenost, možete jednostavno koristiti -i opcija koja doslovno govori o grep naredba "Zaboravi na slučaj u koji sam stavio niz i samo potraži sve odgovarajuće uzorke u datoteci."

Sintaksa:

grep -i [niz] [naziv datoteke]

Primjer:

grep -i mir sample.txt

Izlaz:

INDIJA JE LIJEPA ZEMLJA LJUDI KOJI VOLE MIR. Indija je prekrasna zemlja ljudi koji vole mir.

Prikazuju se svi podudarni redovi bez obzira na slučaj u kojem se podudarni niz nalazi.

Rekurzivno pretraživanje korištenjem grep naredba

The -r opcija će tražiti sve datoteke u direktoriju i sve njegove poddirektorije koji se podudaraju s uzorkom niza koji je dao korisnik u naredbi.

Sintaksa:

grep -i -r [niz] [puta_datoteke]

Primjer:

grep -i -r tomcat /home/gaurav/workspace

Ovdje je niz 'tomcat' i bit će pretraživan u radnom prostoru direktorija. Svi poddirektoriji i datoteke u direktoriju 'radnog prostora' također će se skenirati kako bi odgovarali danom uzorku niza.

Izlaz:

./context_log.policy:// catalina.policy - Dozvole sigurnosne politike za Tomcat 7 ./context_log.policy:// Napomena: ako je tomcat-juli.jar u ${catalina.base}, a ne u ${catalina.home }, ./context_log.policy:// grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..} ./context_log.policy:grant codeBase "file:${catalina.home }/bin/tomcat-juli.jar" { ./context_log.policy: dopuštenje java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server"; ./context.xml: ./catalina.properties:# - Tomcat Bootstrap JAR-ovi ./catalina.properties:# - Tomcat API JAR-ovi ./catalina.properties:# - Tomcat JAR-ovi ./catalina.properties:# - Uobičajeni ne-Tomcat JAR-ovi ./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar ./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true ./catalina:#.properties . tomcat.util.buf.StringCache.char.enabled=true ./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000 ./catalina.properties:#tomcat.util.buf.StringCache=5.cacheSize. /server.xml: pathname="conf/tomcat-users.xml" /> ./server.xml: 

BILJEŠKA: Tijekom korištenja -r opcija s grep naredba trebamo dati putanju datoteke, a ne naziv datoteke

Pretraživanje cijelih riječi samo sa grep naredba

Mnogo puta je slučaj da ćete tražiti jednu riječ, ali ćete na kraju ispuniti svoj terminal odgovarajućim redovima koji sadrže vašu odgovarajuću riječ, ali ne kao pojedinačnu riječ. Možda ćete vidjeti retke koji sadrže neke riječi čiji je poddio niz koji ste unijeli.

Zbunjen s ovim? Ne brinite, mnogo je lakše razumjeti kada dobijete primjer.

Primjer:

Ovdje želim pretražiti pojedinačnu riječ "košarica" ​​i prikazati sve retke koji odgovaraju ovoj riječi u datoteci "sample.txt".

grep -i cart sample.txt

Izlaz:

Kartezijanske koordinate važnost svih kartezijanskih koordinata. korištenje volovskih zaprega uobičajen je prizor u selu za agrarne poslove. Kola su nestala jer ih je dječak ostavio.

U izlazu možete primijetiti da riječ 'kartezijanski' također sadrži riječ 'kolica' i stoga se retke koji sadrže riječ 'kartezijanski' također prikazuju iako ne želimo da se prikazuju.

Možete koristiti -w opcija s grep naredba za rješavanje ove nejasnoće.

Sintaksa:

grep -i -w [niz] [naziv datoteke]

Primjer:

grep -i -w uzorak košarice.txt

Izlaz:

korištenje volovskih zaprega uobičajen je prizor u selu za agrarne poslove. Kolica su nestala jer ih je dječak ostavio. 

Sada, kada ste koristili -w opcija sa grep dobit ćete samo retke u kojima se riječ 'kolica' koristi kao cjelina.

Obrnuto pretraživanje pomoću grep naredba

grep naredba se također može koristiti na obrnuti način. Možemo koristiti grep naredba suprotno skrivanjem odgovarajućih redaka i prikazivanjem samo redaka u kojima nije pronađeno podudaranje. To možete učiniti pomoću -v opcija s grep naredba.

Sintaksa:

grep -i -v [niz] [naziv datoteke]

Primjer:

grep -i -v uzorak resursa.txt

Izlaz:

INDIJA JE LIJEPA ZEMLJA LJUDI KOJI VOLE MIR. Indija stoji na tri stupa zakonodavne, izvršne i sudske vlasti. Indija je prekrasna zemlja ljudi koji vole mir. kartezijanske koordinate važnost svih th kartezijanskih koordinata. korištenje volovskih zaprega uobičajen je prizor u selu za agrarne poslove. Ovo je kraj datoteke uzorka.

U izlazu se prikazuju svi ostali retki osim retka koji sadrži riječ 'resurs'.

Brojanje pojavljivanja podudarnog niza

Izlaz od grep naredba je obično vrlo duga ako su podaci u datoteci opsežni. Što je više šibica, duži su rezultati grep naredba. Linux vam pruža opciju gdje možete prikazati broj pojavljivanja podudaranja.

Sintaksa:

grep -i -c [niz] [naziv datoteke]

Primjer:

grep -i -c indijski uzorak.txt

Izlaz:

gaurav@ubuntu:~/workspace$ grep -i -c india sample.txt 4 gaurav@ubuntu:~/workspace$

Ovdje je izlaz broj koji predstavlja broj pojavljivanja riječi 'Indija' u datoteci sample.txt.

BILJEŠKA: Koristio sam -i opcija u svakom primjeru kako biste bili sigurni s problemom osjetljivosti velikih i malih slova. U slučaju da ste sigurni u velika i mala slova riječi koju tražite, možete sigurno izostaviti -i opcija.

Zaključak

Naučili smo temeljnu upotrebu grep naredbu na Linux sustavima u ovom vodiču. Također smo naučili prikazati različite sadržaje koji najbolje odgovaraju našim zahtjevima i ne pretrpavati terminal gomilom redova. grep naredba će sigurno uštedjeti vrijeme ako se koristi za skeniranje velikih skupova podataka.