U ovom ćemo članku objasniti upotrebu grep uslužnog programa s različitim primjerima. Koristit ćemo Debian 10 za objašnjavanje naredbi i metoda spomenutih u ovom članku.
Instaliranje Grepa
Grep se instalira 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 grepKoristeći Grep
Evo osnovne sintakse naredbe grep. Počinje s grep, nakon čega slijede neke opcije i kriteriji pretraživanja, a zatim završava s nazivom datoteke.
$ grep [opcije] UZORAK [FILE…]Potražite datoteke
Da biste tražili naziv datoteke u direktoriju koji sadrži određeni niz, možete koristiti grep na sljedeći način:
$ ls -l | grep -i “nizNa primjer, za traženje naziva datoteke koji sadrži niz “test“, Naredba bi bila:
$ ls -l | grep -i testOva 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:
$ grep naziv datoteke "string"Na primjer, za traženje niza „test”U datoteci s imenom ispitna datoteka1, koristili smo sljedeću naredbu:
$ grep test datoteka "zaposlenika "1
Gornji izlaz vratio je rečenicu iz datoteke ispitna 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:
$ grep “string” ime datoteke1 ime datoteke2Na primjer, za traženje niza "zaposlenik" u naše dvije datoteke testfile1 i testfile2, koristili smo sljedeću naredbu:
$ grep test zaposlenika1 testfile1 testfile2
Gornja naredba popisat će sve retke koji sadrže niz "zaposlenik" iz obje datoteke testfile1 i testfile2.
Također možete koristiti zamjenski znak ako sva imena datoteka počinju istim tekstom.
$ grep "string" naziv datoteke *Kao, ako uzmemo gornji primjer u kojem su bila naša imena datoteka testfile1 i testfile2 , naredba bi bila:
$ grep testna datoteka zaposlenika *
Potražite niz u datoteci zanemarujući slučaj niza
Najčešće ste se susreli s tim kada nešto tražite pomoću grepa, ali ne dobijete izlaz. To se događa zbog neusklađenosti slučajeva prilikom traženja niza. Kao u našem primjeru, ako pogrešno koristimo "Zaposlenik" umjesto "zaposlenik", Vratit će nulu jer naša datoteka sadrži niz"zaposlenik”Malim slovima.
Možete reći grepu da ignorira slučaj niza pretraživanja pomoću oznake -i nakon grepa na sljedeći način:
$ grep -i naziv datoteke "string"
Korištenjem zastavice -i, naredba će izvršiti pretraživanje bez velikih i malih slova i vratit će sve retke koji sadrže niz “zaposlenik”U njemu 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 grep-u. 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 trebati upisivati cijeli redak naredbom grep. U tu se svrhu može koristiti sljedeća sintaksa.
$ grep “početna ključna riječ.* ENDKEYWORD ”naziv datotekeNa primjer, za traženje retka u datoteci nazvanoj testfile1 koja započinje nizom "this" i završava nizom "data", koristili smo sljedeću naredbu:
$ grep “ovo.* podaci ”testfile1
Ispisat će cijeli redak s ispitna datoteka1 koji sadrži izraz (početna ključna riječ „ovo“ i završna ključna riječ „podaci“).
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 se svrhu može koristiti sljedeća sintaksa:
$ grep -APrikazat će N broj redaka nakon što se niz podudara u navedenoj datoteci, uključujući podudarni niz.
Na primjer, ovo je naša uzorkovana datoteka testfile2.
Sljedeća naredba će iznijeti podudarni redak koji sadrži niz “zaposlenik”, Zajedno s 2 retka nakon njega.
$ grep -A 2 -i testna datoteka "zaposlenika "2
Slično tome, za prikaz N broja redaka prije podudarnog niza u određenoj datoteci, upotrijebite sljedeću sintaksu:
$ grep -BZa prikaz N broja redaka oko niza u određenoj datoteci upotrijebite sljedeću sintaksu:
$ grep -CIsticanje pretraživanja
Grep prema zadanim postavkama ispisuje podudarne linije, ali ne prikazuje kojem se dijelu retka podudara. Ako koristite opciju -color s grep, ona će pokazati gdje se obradni nizovi pojavljuju u vašoj datoteci. Grep prema zadanim postavkama koristi crvenu boju za isticanje.
U tu se svrhu može koristiti sljedeća sintaksa:
$ grep naziv datoteke "string" --color
Brojanje broja podudaranja
Ako želite računati koliko se puta određena riječ pojavljuje u određenoj datoteci, možete upotrijebiti grep s -c opcijom. Vraća samo broj utakmica, a ne same utakmice. U tu se svrhu može koristiti sljedeća sintaksa:
$ grep -c naziv datoteke "string"Ovo je naša ogledna datoteka koja izgleda ovako:
Slijedi primjer naredbe koja je vratila broj puta riječ datoteka pojavio se u datoteci s imenom testfile3.
Obrnuta pretraga
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:
$ grep -v naziv datoteke "string"Na primjer, za prikaz svih redaka u datoteci testfile3 koji u sebi ne sadrže riječ "račun", koristili smo sljedeću naredbu:
$ grep -v testna datoteka „računa “3
Korištenje Grepa s drugim naredbama
Grep se također može koristiti za filtriranje potrebnog rezultata iz različitih izlaza naredbi. Na primjer, iz "apt -instalirani popis ” Izlaz naredbe, želite pronaći samo pakete koji su automatski instalirani, rezultat možete filtrirati pomoću grep-a na sljedeći način:
$ apt --instalirani popis | grep automatski
Slično tome, lscpu pruža detaljne informacije o CPU-u. Ako vas samo zanimaju informacije u vezi s arhitekturom CPU-a, možete ih filtrirati pomoću sljedeće naredbe:
$ lscpu | grep Arhitektura
U ovom smo članku opisali neke primjere koji će vam pomoći u razumijevanju grep naredbi i njihove upotrebe u različitim uvjetima. Snažno držanje grep naredbe može uštedjeti puno vremena ako trebate pogledati velike datoteke konfiguracije ili dnevnika i pregledati korisne informacije kroz njih.