Grep

Из Википедије, слободне енциклопедије

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 Majkrosoft vindouz podržavaju komandu pronađi za jednostavno pretraživanje niski. Vindouz 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.. 

Literatura[уреди]

  • Alain Magloire (August 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 Grep wars: The strategic search initiative. In Peter Collinson, editor, Proceedings of the EUUG Spring 88 Conference, pages 237–245, Buntingford, UK, 1988. European UNIX User Group.

Spoljašnje veze[уреди]