grep

Kohteesta Wikipedia
Siirry navigaatioon Siirry hakuun


grep (search globally for a regular expression and print) on Unix-käyttöjärjestelmän komentoriviohjelma, joka etsii säännöllisillä lausekkeilla määriteltyjä merkkijonoja tiedostoista.[1] Ohjelman nimi on peräisin ed-tekstieditorin komennosta g/re/p.[1] Ohjelman on kehittänyt Ken Thompson.[1]

Tietokoneslangissa greppaus tai greppaaminen tarkoittaa yleensä mitä tahansa merkkijonojen etsimistä.

Säännöllisten lausekkeiden syntaksi[muokkaa | muokkaa wikitekstiä]

Klassinen grep[muokkaa | muokkaa wikitekstiä]

 . mikä tahansa merkki paitsi rivinvaihto
 * edeltävä merkki 0-N kertaa
 [ ] mikä tahansa sulkujen sisällä olevista merkeistä
 [A-Z] merkit A...Z
 [^ ] ei merkki esimerkiksi [^x] tarkoittaa EI ”x”
 ^ rivin alku
 $ rivin loppu
 (lauseke) alilausekkeen alku. Tämä on
 epäsäännöllinen laajennus eikä aina hyvin määritelty.
 \n alilausekkeen vastaama merkkijono numero ''n''.
 Esimerkiksi ”\(a??\)\1" vastaa merkkijonoja
 ”abcbc” ja ”adede” mutta ei ”abcde”.

POSIX-laajennukset[muokkaa | muokkaa wikitekstiä]

 + edeltävä merkki 1-N kertaa
 ? edeltävä merkki 0-1 kertaa
 | tai
 a{m}	tasan m kpl a
 a{m,} vähintään m kpl a
 a{m,n} m...n kpl a
 [:alpha:] kirjain käytetyillä maa-asetuksilla
 [:alnum:] kirjain tai numero käytetyillä maa-asetuksilla
 [:cntrl:], [:digit:], [:graph:], [:lower:],
 [:print:], [:punct:], [:space:], [:upper:]
 ja [:xdigit:] erilaisia ryhmittelyjä
 \w sama kuin [:alnum:]
 \W sama kuin [^[:alnum]]

Haettaessa lauseketta a* tiedostosta grep-ohjelmalla, haku löytäisi ainakin tyhjän merkkijonon joka riviltä, ja tulostaisi siis kaikki rivit. On myös huomattava, että haku säännöllisillä lausekkeilla on ahne, ja löytää riviltä aina pisimmän vastaavan merkkijonon.

Erikoisuudet yms.[muokkaa | muokkaa wikitekstiä]

 ^$ tyhjä rivi

Esimerkkejä[muokkaa | muokkaa wikitekstiä]

Komentoriviputkessa

Yleinen tapa on liittää ohjelman käyttö komentoriviputkeen:

 $ ps | grep bash

Tämä tapaus esittää ps ohjelman antamasta prosessilistauksesta rivit, joilla esiintyy sana bash.

Tyhjät rivit

Etsii tiedostosta #tiedosto kaikki tyhjät rivit ja tulostaa ne kaikki oletustulostusvirtaan:

 $ grep -e '^$' #tiedosto

Katso myös[muokkaa | muokkaa wikitekstiä]

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. a b c Brian Kernighan Remembers the Origins of ‘grep’ 22.7.2018. The Newstack. Viitattu 7.8.2018.

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]

Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.