grep je alat komandne linije za pretraživanje teksta prvobitno napisan za juniks. Ime sačinjavaju prva slova serije instrukcija za editor teksta ed: global, regular expression i print.[1] Naredba grep pretražuje datoteke ili standardni ulaz, tražeći redove teksta koji odgovaraju zadatom regularnom izrazu, i ispisuje ih na standardni izlaz.

Upotreba уреди

Ovo je primer upotrebe komande grep:

grep zub nazivi.txt

U ovom konkretnom slučaju, grep štampa sve redove iz datoteke nazivi.txt koji sadrže nisku „zub“, bez obzira na granice reči, pa su tako redovi koji sadrže reč „zubar“ ili „krezub“ takođe odštampane. Komanda grep je generalno osetljiva na veličinu slova (engl. case sensitive), tako da se u ovom primeru na izlazu ne nalaze redovi koji sadrže nisku „Zub“ (sa velikim „Z“) osim, naravno, ako ne sadrže i „zub“.

Kao i većina komandi juniksa, grep podržava argumente komandne linije, koji mogu da promene njegovo ponašanje. Na primer:

grep -i zub nazivi.txt

Gore navedena komanda štampa sve redove teksta koji sadrže „zub“, ne praveći razliku između velikih i malih slova. Argument -i kaže grep-u da ne pravi (ignoriše) razliku između malih i velikih slova.

Da bi na izlazu bile samo linije koje sadrže „zub“ kao reč (ne i one koje sadrže samo „Zubar“ i sl.), može se zadati opcija -w:

grep -w zub nazivi.txt

Varijacije уреди

Postoji jako veliki broj implementacija i derivata komande grep, dostupnih za razne operativne sisteme, kao i za olakšavanje pretraživanja u nekim nezavisnim aplikacijama kao npr. EnCase (forenzički softver). Među ranim verzijama ove komande možemo izdvojiti egrep i fgrep. Egrep koristi proširenu sintaksu regularnih izraza koja je dodata Juniksu nakon prvobitne implementacije regularnih izraza Kena Tompsona. Fgrep pretražuje bilo kakvu listu „fiksiranih“ niski koristeći Aho-Korasik algoritam. Mogućnosti i jedne i druge verzije mogu se koristiti u skoro svim modernim implementacijama komande grep, koristeći opcije -E i -F. U takvim implementacijama, grep se ponaša drugačije u zavisnosti od imena kojim je pozvan, jer dozvoljava da sa fgrep, egrep i grep bude pozvan isti program.

pcregrep je jedna od implementacija komande grep koja koristi sintaksu Perlovih regularnih izraza.

Ostale komande koje sadrže reč „grep“ time navode da pretražuju (najčešće reguralnim izrazima). Alat pgrep, na primer, izdvaja procese čija imena odgovaraju zadatom regularnom izrazu.

U Perlu, grep je ugrađena funkcija koja pronalazi elemente u listi. U funkcionalnim programskim jezicima, ova funkcija višeg reda se često naziva i „filter“.

Platforme DOS, OS/2 i Microsoft Windows podržavaju komandu pronađi za jednostavno pretraživanje niski. Windows podržava i komandu findstr koja radi dosta slično komandi grep.

Upotreba u razgovoru уреди

Reč „grep“ ne postoji u srpskom jeziku, ali se u engleskom jeziku može upotrebljavati i kao glagol, sa značenjem pretražiti.

U decembru 2003, Oxford English Dictionary Online je dodao stavku za reč „grep“, koja predstavlja i imenicu i glagol.

Česta fraza „You can't grep dead trees“ (bukvalno: Ne možeš „grepovati“ mrtvo drveće), predstavlja prednost digitalnog teksta u odnosu na štampani, jer se lako pretražuje.

Vidi još уреди

Reference уреди

  1. ^ Raymond, Eric. „grep”. Jargon File. Приступљено 29. 6. 2006.  Пронађени су сувишни параметри: |author= и |last= (помоћ)

Literatura уреди

  • Magloire, Alain (2000). Grep: Searching for a Pattern. Iuniverse Inc. ISBN 978-0-595-10039-2. 
  • Hume, Andrew A tale of two greps[мртва веза], Software—Practice and Experience 18, ( 11 ), 1063–1072 ( 1988).
  • Hume, Andrew (1988). „Grep wars: The strategic search initiative”. Ур.: Collinson, Peter. Proceedings of the EUUG Spring 88 Conference. Buntingford, UK: European UNIX User Group. стр. 237—245. 

Spoljašnje veze уреди