grepillä voidaa etsiä joko tekstistä tai tiedostosta:      echo lrgblrblrbl89befgb | grep 89             tai: grep 89 tiedosto_jonka_tekstistä_etsitään  
- huomaa että kaikki tiedoston rivit käydään automaattisesti läpi, joten tulostetta saattaa tulla paljonkin 

grep:illä voidaan etsiä määräämällä selväkielellä mitä etsitään, määräämällä se muotti missä etsittävä on tehty tai yhdistellen selväkieltä ja muotteja. Esimerkiksi:
echo lrbl89befg | grep 89          tai: echo lrbl89befg | grep [0-9]*

Jos muotissa on selväkielistä osia niin ne kirjoitetaan aivan niinkuin ne alunperin olivat ja lisätään seuraavia lisämääreitä:

Jos etsitään merkkijonoa jonka alku ja loppu tiedetään niin muotti on: tekstialussa.*tekstiloppussa . Tekstialussa ja tekstilopussa täytyy olla samalla rivillä
 
etsittäessä jotakin erikoismerkkiä sen erikoismerkin eteen laitetaan merkki \  . esimerkiksi kun etsitään sanaa hinta$ niin hakusana on: hinta\$ 

Jos hakusana on etsittävän rivin alussa kirjoitetaan muotin eteen ^ ja jos se on lopussa kirjoitetaan muotin perään $ 

[asdfg] etsii mitähyvansä merkeistä asdfg (ei siis etsi koko sanaa vaan mitähyvänsä noista merkeistä. Kun etsitään sanaa niin jätetään hakasulut pois). 
[^asdfg] etsii mitähyvänsä muuta merkkiä kuin jokin luetelluista

Grep tuntee ennaltamäärättyjä merkkiryhmiä. Joskus hyväksytään kaksois-sulun paikalla vain yksi sulku:
[[:alnum:]]->[[A-Za-z0-9]]      [[:alpha:]]->[A-Za-z]         [[:blank:]]->välilyönti tai TAB   [[:cntrl:]]->jokin kontrollimerkki     
[[:digit:]]->[0-9]              [[:graph:]]->ASCII 33 - 126   [[:lower:]]->[a-z]                [[:print:]]->ASCII 32 - 126 ja välilyönti      
[[:space:]]->välilyönti ja TAB  [[:upper:]]->[A-Z]            [[:xdigit:]]->[0-9A-Fa-f]         [[:punct:]]->jokin erikoismerkki 

useimmat erikoismerkit menettävät erikoismerkityksensä merkkien []   tai: '' välissä

.*  korvaa mielivaltaisen määrän merkkejä, ja sen paikalla ei välttämättä täydy olla merkkiä ollenkaan. Piste edessä on vaatimus.
+   korvaa mielivaltaisen määrän merkkejä, ja sen paikalla täytyy olla vähintään yksi merkki
.   korvaa täsmälleen yhden merkin, siis hakusana on: ' etsittävä ' kun halutaan painottaa että ennen ja jälkeen etsittävän on välilyönnit
 
grepin kytkimet:
-r  etsitään rekursiivisesti                          -s  ei anneta varoitusviestejä                      -c  vain löytöjen lukumäärä tulostetaan 
-h  tulostaa sen tekstirivin jolta etsitty löytyy     -w  oleta etsittävän alkuun ja loppuun \< ja \>     -v  poista hakutuloksista ne joissa etsitty on osana   
-l  tulostaa sen tiedoston nimen josta etsitty löytyy -n  tulostaa myös miltä riviltä etsitty löytyi      -i  etsittäessä ei huomioida kirjainkokoa     
-F  etsitään kirjaimiltaan juuri sellaista mikä etsittäväksi määrättiin, esimerkiksi merkkiä: *           -m 1    vain ensimmäinen osuma tulostetaan
-e  optiot on nyt kirjoitettu ja haettava seuraa vaikka se alkaisi                                        -o kirjoita löydetyt kukin omalle rivilleen
-P  '\w'->kirjain; '\d\'->numero; \b rajoittuu välilyöntiin tai rivinalkuun/loppuun; \B ei rajoitu välilyöntiin tai rivinalkuun/loppuun; \s välilyönti tai rivinsiirto
-x  etsitään kokonaista lausetta                         
-E  ota käyttöön laajennoksia, mm. \ ei tarvita; siis esimerkiksi kun etsit find-käskyn "placeholdereita" niin etsittävä on: grep -lrE {} mistä_etsittään
-A <numero>  tai: -B <numero> tai: -C <numero>      tulosta <numero> riviä haetun rivin edestä, jäljestä tai molemminpuolin

Regex:ille on laajennos joka on käytettävissä kun käyttää egrepiä, tavallisella grepillä kytkintä -E ja sed:illä kytkintä: -r. Ne ovat:
+  – yksi tai useampi edellisestä merkistä
|  - grepin tai-funktio, joko: grep -e .doc -e .html -e .odt -e .sgml -e .xml      tai: grep -E *.doc\|*.html\|*.sgml\|*.xml
?  - nolla tai yksi edellistä
() - sitoo merkkiryhmät yhteen. Esimerkiksi: grep -E '*(do)*(1|2)' . Kaikki merkit juuri näin

{i\}      kuten *, mutta lukumäärä on täsmälleem i-kappaletta
{i,j\}    kuten *, mutta lukumäärä on välillä i-j
{i,\}     kuten *, mutta jotakin yli i. siis esimerkiksi: egrep ^.\{15\}A etsii sanaa jonka alussa on 15 mielivaltaista merkkiä ja heti niiden perässä A
{,1\}     edellistä kohtaa on nolla tai yksi
a{2,\}?   jokainen a-ryhmä, jossa on vähintään 2 a:ta  (2:n paikalla voi olla mikähyvänsä luku joka toimii miniminä)
\(regexp\) esim. \(abc\)* korvaa nollaa tai suurempaa joukkoa jonka jokainen jäsen on abc, kuntaas abc* etsisi joukkoa jonka edessä on ab ja perässä on nolla tai useampi c

- mikäli hakusana on: *1* niin sen negaatio on !(*1*)
