Grep naredba u Linuxu

Grep Command Linux



Naredba Grep (ispis globalnog regularnog izraza) je najmoćniji i redovito korišten pomoćni program za naredbeni redak u sustavu Linux. Koristeći Grep, možete tražiti korisne informacije navođenjem kriterija pretraživanja. Traži određeni uzorak izraza u određenoj datoteci. Kad pronađe podudaranje, ispisuje sve retke datoteke koji odgovaraju navedenom uzorku. Dobro dođe kada morate filtrirati velike datoteke dnevnika.

U ovom ćemo članku objasniti upotrebu grep alata s različitim primjerima. Za objašnjenje naredbi i metoda spomenutih u ovom članku koristit ćemo Debian 10.







Instaliranje Grepa

Grep dolazi instaliran u većini Linux distribucija. Međutim, u slučaju da nedostaje u vašem sustavu, možete ga instalirati na sljedeći način u Terminalu:



$sudo apt-get install zahvat

Korištenje Grepa

Evo osnovne sintakse naredbe grep. Počinje s grep -om, nakon čega slijede neke opcije i kriteriji pretraživanja, a zatim završava imenom datoteke.



$zahvat [mogućnosti]UZORAK[DATOTEKA...]

Potražite datoteke

Za traženje naziva datoteke u direktoriju koji sadrži određeni niz u njemu, možete koristiti grep na sljedeći način:





$ls - | zahvat -iniz

Na primjer, za traženje naziva datoteke koji sadrži niz test , naredba bi bila:

$ls-| zahvat–Itest

Ova naredba navodi sve datoteke koje sadrže niz test .



Potražite niz u datoteci

Za traženje niza u određenoj datoteci možete upotrijebiti sljedeću sintaksu naredbe:

$zahvatstring naziv datoteke

Na primjer, za traženje niza test u datoteci pod nazivom testna datoteka1 , upotrijebili smo sljedeću naredbu :

$zahvattestna datoteka zaposlenika1

Gornji izlaz vratio je rečenicu iz testna datoteka1 koji sadrži niz zaposlenik .

Potražite niz u više datoteka

Za traženje niza u više datoteka možete upotrijebiti sljedeću sintaksu naredbe:

$zahvatniz naziv datoteke1 naziv datoteke2

Na primjer, za traženje zaposlenika niza u naše dvije datoteke testfile1 i testfile2, upotrijebili smo sljedeću naredbu:

$zahvattestfile zaposlenika1 testfile2

Gornja naredba ispisat će sve retke koji sadrže zaposlenika niza iz obje datoteke testfile1 i testfile2.

Također možete koristiti zamjenski znak ako svi nazivi datoteka počinju istim tekstom.

$zahvatstring naziv datoteke*

Kao, ako uzmemo gornji primjer u kojem su nam bili nazivi datoteka testfile1 i testfile2 , naredba bi bila:

$zahvattestni dosje zaposlenika*

Potražite niz u datoteci zanemarujući velika i mala slova niza

Najčešće ste se susretali s time da kada tražite nešto koristeći grep, ali ne primate izlaz. To se događa zbog nepodudaranja velikih i malih slova tijekom pretraživanja niza. Kao u našem primjeru, ako greškom koristimo Zaposlenik umjesto zaposlenik , vratit će nil jer naša datoteka sadrži niz zaposlenik malim slovima.

Možete reći grepu da zanemari slučaj niza za pretraživanje pomoću –i zastavice nakon grepa na sljedeći način:

$zahvat–I string filename

Pomoću zastavice –i naredba će izvršiti pretraživanje bez obzira na velika i mala slova te će vratiti sve retke koji sadrže niz zaposlenik u njoj bez uzimanja u obzir slova su velika ili mala.

Pretražujte pomoću regularnog izraza

Ako se pravilno koristi, regularni izraz vrlo je učinkovita značajka u grepu. Pomoću naredbe Grep možete definirati regularni izraz s početnom i završnom ključnom riječi. Na taj način nećete morati upisati cijeli redak naredbom grep. U tu se svrhu može koristiti sljedeća sintaksa.

$zahvatpočetna ključna riječ.*ENDKeyword naziv datoteke

Na primjer, za traženje retka u datoteci pod nazivom testfile1 koja počinje s nizom this i završava s nizom podataka, upotrijebili smo sljedeću naredbu:

$zahvatovaj.*testna datoteka podataka1

Ispisat će cijeli redak iz testna datoteka1 koji sadrži izraz (početna ključna riječ this i završni podaci ključne riječi).

Ispišite određeni broj redaka nakon/prije niza za pretraživanje

Također možete prikazati određeni broj redaka u datoteci prije/nakon podudaranja niza zajedno sa samim podudarnim nizom. U tu svrhu može se koristiti sljedeća sintaksa:

$zahvat -DO <N>string naziv datoteke

Prikazat će N broj redaka nakon što se niz podudara u navedenoj datoteci, uključujući niz koji se podudara.

Na primjer, ovo je naša datoteka uzorka pod nazivom testna datoteka2 .

Sljedeća naredba će ispisati podudarni redak koji sadrži niz zaposlenik , zajedno s 2 retka iza njega.

$zahvat-DO2–I testna datoteka zaposlenika2

Slično, za prikaz N redaka ispred podudarnog niza u određenoj datoteci, upotrijebite sljedeću sintaksu:

$zahvat -B <N>string naziv datoteke

Za prikaz N redaka oko niza u određenoj datoteci upotrijebite sljedeću sintaksu:

$zahvat -C <N>string naziv datoteke

Isticanje pretraživanja

Grep prema zadanim postavkama ispisuje podudarne retke, ali ne pokazuje koji je dio linije podudaran. Ako koristite opciju -color s grepom, ona će pokazati gdje se strojni nizovi pojavljuju u vašoj datoteci. Grep prema zadanim postavkama koristite crvenu boju za isticanje.

U tu svrhu može se koristiti sljedeća sintaksa:

$zahvatstring naziv datoteke--boja

Brojanje broja podudaranja

Ako želite brojati koliko se puta određena riječ pojavljuje u određenoj datoteci, možete upotrijebiti opciju grep s –c. Vraća samo broj podudaranja, a ne same utakmice. U tu svrhu može se koristiti sljedeća sintaksa:

$zahvat–C naziv datoteke datoteke

Ova naša ogledna datoteka izgleda ovako:

Slijedi primjer naredbe koja je vratila broj riječi datoteka pojavio u datoteci pod nazivom testfile3 .

Obrnuto pretraživanje

Ponekad želite izvršiti obrnuto pretraživanje koje prikazuje sve retke osim onih koji odgovaraju unosu. Da biste to učinili, jednostavno upotrijebite zastavicu –v iza koje slijedi grep:

$zahvat–V naziv datoteke niza

Na primjer, za prikaz svih redaka u datoteci testfile3 koji u sebi ne sadrže riječ account, upotrijebili smo sljedeću naredbu:

$zahvat–V testna datoteka računa3

Korištenje Grepa s drugim naredbama

Grep se također može koristiti za filtriranje traženog rezultata iz različitih naredbi. Na primjer, iz apt - instaliran popis naredbeni izlaz, želite pronaći samo pakete koji su automatski instalirani, rezultat možete filtrirati pomoću grepa na sljedeći način:

$prikladan-instaliranpopis| zahvatautomatski

Slično, lscpu pruža detaljne informacije o CPU -u. Ako vas samo zanimaju informacije o arhitekturi CPU -a, možete ih filtrirati pomoću sljedeće naredbe:

$lscpu| zahvatArhitektura

U ovom smo članku opisali neke primjere koji će vam pomoći u razumijevanju grep naredbi i njihove uporabe u različitim uvjetima. Čvrsto držanje grep naredbe može uštedjeti mnogo vremena ako trebate pogledati velike konfiguracijske datoteke ili datoteke dnevnika i pregledati korisne informacije kroz njih.