**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* (***g**lobally search a* ***r**egular **e**xpression* and ***p**rint*), kas veic tādu pašu darbību: veic globālu meklēšanu pēc regulāras izteiksmes un izdrukā visas atbilstošās rindas. 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
-------

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). Ed redaktorā komanda *g/re/p* izdrukāja visas rindas, kas atbilda iepriekš noteiktam šablonam.

Izmantošana
-----------

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
--------

1. 1 2 3  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.

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * s
* d
* l
Unix komandrindas saskarnes programmas un čaulas komandas |
| --- |
|  |
| Failu sistēma | 
* cat
* chmod
* chown
* chgrp
* cksum
* cmp
* cp
* dd
* du
* df
* file
* fsck
* fuser
* ln
* ls
* mkdir
* mount
* mv
* pax
* pwd
* rm
* rmdir
* split
* tee
* touch
* type
* umask

 |
|  |
| Procesi | 
* at
* bg
* chroot
* cron
* fg
* kill
* killall
* nice
* pgrep
* pkill
* ps
* pstree
* time
* top

 |
|  |
| Lietotāja vide | 
* clear
* env
* exit
* finger
* history
* logname
* mesg
* passwd
* su
* sudo
* uptime
* talk
* tput
* uname
* w
* wall
* who
* whoami
* write

 |
|  |
| Teksta apstrāde | 
* awk
* banner
* basename
* comm
* csplit
* cut
* diff
* dirname
* ed
* ex
* fmt
* fold
* head
* iconv
* join
* less
* more
* nl
* paste
* printf
* sed
* sort
* spell
* strings
* tail
* tr
* uniq
* vi
* wc
* xargs
* yes

 |
|  |
| Čaulas komandas | 
* alias
* cd
* echo
* test
* unset
* wait

 |
|  |
| Tīkli | 
* dig
* host
* ifconfig
* inetd
* netcat
* netstat
* nslookup
* ping
* rdate
* rlogin
* route
* ssh
* traceroute

 |
|  |
| Meklēšana | 
* find
* grep
* locate
* whatis
* whereis

 |
|  |
| Dokumentācija | 
* apropos
* help
* man

 |
|  |
| Dažādi | 
* bc
* dc
* cal
* expr
* lp
* od
* sleep
* true un false

 |

 |