Grep is een afkorting voor General Regural Expression Parser. Het is een programma dat met behulp van regular expressions ergens naar kan zoeken. Met regular expressions kun je zoekpatronen maken om naar bepaalde stukken tekst te zoeken. (Maar er zijn wel dingen te bedenken die gewoon onmogelijk zijn om in een regexp te formuleren.) Naast grep kunnen regexps ook in een aantal andere programma's gebruikt worden, maar vaak zijn niet precies dezelfde regexps te gebruiken als in grep. Er zijn vaak kleine variaties. Een tweetal erg simpel voorbeelden van het gebruik van grep:
grep -i foo file.txt ps aux | grep netscape
Met het eerste commando wordt naar de string foo gezocht in het
bestand file.txt. De optie -i
zorgt ervoor dat er niet op hoofd- en kleine
letters gelet wordt (ignore case). Met het tweede commando wordt in de output
van ps gezocht naar het woord netscape.
In grep kun je de volgende regular expressions gebruiken. Er wordt telkens aangegen waar een expressie mee zal matchen.
^
begin van de regel
$ eind van de regel\<
begin van een woord\>
eind van een woord.
elk enkel karakter[str]
elk karakter in de string str[^str]
elk karakter dat niet in de string str voorkomt[a-b]
elk karakter tussen a en b\
heft speciale betekenis van het tegen erna op*
0 of meer herhalingen van het vorige item
Als je grep -E gebruikt kun je zelfs nog meer speciale expressies vormen:
+
1 of meer herhalingen van het vorige item?
0 of 1 herhaling van het vorige item{j}
exact j herhalingen van het vorige item{j,}
j of meer herhalingen van het vorige item{,k}
maximaal k herhalingen van het vorige item{j,k}
j tot k herhalingen van het vorige item
st s of t(exp)
behandel exp als een enkel item