grep

Vikipēdijas lapa

Sākotnējais autors Kens Tomsons[1][2]
Sākotnējā versija 1974. gada novembrī[1]

grep ir komandrindas utilītprogramma, ko izmanto, lai vienkārša teksta datu kopās meklētu rindas, kuras atbilst regulārām izteiksmēm. Tās nosaukums cēlies no ed komandas g/re/p (globally search a regular expression and print), kas veic tādu pašu darbību: veic globālu meklēšanu pēc regulāras izteiksmes un izdrukā visas atbilstošās rindas.[3][4] Grep sākotnēji tika izstrādāts Unix operētājsistēmai, bet mūsdienās ir pieejams visām Unix līdzīgajām sistēmām.

Vēsture[labot šo sadaļu | labot pirmkodu]

grep izstrādāja Kens Tomsons, un pirmoreiz tā parādījās Unix 4. versijā kā atsevišķa utilītprogramma, atvasinot to no regulāro izteiksmju parsētāja ed redaktoram (kam Tomsons arī bija autors).[1] Ed redaktorā komanda g/re/p izdrukāja visas rindas, kas atbilda iepriekš noteiktam šablonam.[5][6]

Izmantošana[labot šo sadaļu | labot pirmkodu]

grep meklē failos, kurus norāda kā argumentus, bet ja to nenorāda, tad meklēšana notiek programmas standarta ievadē. Pēc noklusējuma atbilstošās rindas tiek drukātas standarta izvadē, bet ar komandrindas parametriem iespējams norādīt arī citādāku darbības režīmu.

Šis ir vienkāršs bieži izmantots grep piemērs. Teksta failā augļu_saraksts.txt tiek meklētas teksta rindas, kurās ir teksts ābols:

$ grep ābols augļu_saraksts.txt

Atbilstības tiek atrastas, kad tiek atpazīta konkrēta burtu virkne, piemēram, rinda, kurā ir teksts granātābols, tiek izdrukāta, jo vārdu robežas netiek ņemtas vērā. Tomēr norādītais šablons pēc noklusējuma ir reģistrjutīgs, tāpēc šī piemēra izvads neatgriež rindas, kuras satur tekstu Ābols (ar lielo Ā), ja vien tās nesatur arī tekstu ābols. Meklēšanu bez reģistrjutības var veikt, komandrindā papildus norādot argumentu -i (ignorēt reģistru).

Argumentu sarakstā var norādīt arī vairākus failus. Piemēram, ja komandu interpretators atbalsta aizstājējzīmju izmantošanu, var norādīt visus failus direktorijā ar paplašinājumu .txt, izmantojot zvaigznīti kā daļu no faila nosaukuma:

$ grep ābols *.txt

Lai atrastu atbilstības sarežģītākiem teksta šabloniem, var izmantot regulārās izteiksmes. Šī komanda izdrukā visas rindas failā, kuras sākas ar burtu b, kam seko viens jebkāds simbols, kam seko burtu virkne mbieris.

$ grep ^b.mbieris augļu_saraksts.txt

Atsauces[labot šo sadaļu | labot pirmkodu]

  1. 1,0 1,1 1,2 Brian Kernighan. The Unix Programming Environment. Prentice Hall, 1984. 102. lpp. ISBN 0-13-937681-X.
  2. “grep was a private command of mine for quite a while before i made it public.” -Ken Thompson, By Benjamin Rualthanzauva, Published on Feb 5, 2014, Medium
  3. Hauben et al. 1997, Ch. 9
  4. Eric Raymond. «grep». Jargon File. Skatīts: 2006-06-29.
  5. «ed regexes». perl.plover.com.
  6. «How Grep Got its Name». thoughtbot. 2010. gada 28. jūl.