Napsal Zeph Grunschlag
egrepis je akronym pro „Extended Global Regular Expressions Print“. Je to program, který prohledává zadaný soubor řádek po řádku a vrací řádky, kteréobsahují vzor odpovídající zadanému regulárnímu výrazu.
Standardní příkaz egrep vypadá takto:
egrep<flags> ‚<regularexpression>‘ <filename>
Některé běžné příznaky jsou:
Regulární výrazy mají svou vlastní variantu egrepu (ta je velmi podobná regulárním výrazům v emacsu, perlu atd.).)
(Řecké písmeno ε (epsilon) představuje prázdný řetězec)
Jeden z hlavních rozdílů mezi regulárními výrazy egrep a teoretickými regulárními výrazy spočívá v tom, že v egrepu se shody mohou vyskytovat kdekoliv řetězci, zatímco při teoretickém použití shody vždy začínají od prvního znaku řetězce a končí u posledního znaku. Uvažujme například řetězec 000001000.V egrepu odpovídá regulární výraz 010; na druhé straně teoretický regulární výraz 010 neodpovídá 000001000, protože 010 a 000001000 se nerovnají. Teoretický ekvivalent výrazu 010 v egrepu je (0+1)*010(0+1)*. Co když chcete skutečně zohlednit začátek a konec řetězců? egrep vám nabízí symbol caret ^ pro určení začátku a symbol dolaru $ pro určení konce. Takže egrep ekvivalent teoretického 010 je dán ^010$ .
Další užitečnou dvojicí egrepsymbolů jsou hranice slov \< a\>, které označují začátek, resp. konec slova.
Pro určení množiny nebo rozsahu znaků se používají závorky. Pro označení množiny použijte symbol kloboučku ^jako první znak. Například
- je množina { a, 9, A, 0, 5 }.
- je doplňková sada ASCII – { a, 9, A, 0, 5 }. (vše kromě a, 9, A, 0 a 5).
- je množina všech malých písmen { a, b, c, d, …, z }.
- je množina všech písmen ASCII kromě malých písmen, číslic mezi 4 a 9 a velkých písmen Q a R.
Několik příkladů:
- egrep ‚^(0|1)+$‘ searchfile.txt
odpovídá všem řádkům v souboru searchfile.txt, které začínají neprázdným bitovým řetězcem, za nímž následuje mezera a po ní neprázdné abecední slovo, které ukončuje řádek
.