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–ItestOva 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 datotekeNa primjer, za traženje niza test u datoteci pod nazivom testna datoteka1 , upotrijebili smo sljedeću naredbu :
$zahvattestna datoteka zaposlenika1Gornji 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 datoteke2Na primjer, za traženje zaposlenika niza u naše dvije datoteke testfile1 i testfile2, upotrijebili smo sljedeću naredbu:
$zahvattestfile zaposlenika1 testfile2Gornja 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 filenamePomoć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 datotekeNa 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 podataka1Ispisat ć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 datotekePrikazat ć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 zaposlenika2Slično, za prikaz N redaka ispred podudarnog niza u određenoj datoteci, upotrijebite sljedeću sintaksu:
$zahvat -B <N>string naziv datotekeZa prikaz N redaka oko niza u određenoj datoteci upotrijebite sljedeću sintaksu:
$zahvat -C <N>string naziv datotekeIsticanje 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--bojaBrojanje 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 datotekeOva 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 nizaNa 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čuna3Koriš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| zahvatArhitekturaU 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.