Avaa päävalikko

grep

hakukomento Unixin kaltaisissa järjestelmissä


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] Ohjelma kehitettiin seurauksena tarpeelle käsitellä suurempia tiedostoja kuin tietokoneen muistiin mahtui.[1] Ohjelma vaikutti myös sed-rivieditorin kehitykseen.[2]

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

Säännöllisten lausekkeiden syntaksiMuokkaa

Klassinen grepMuokkaa

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

 + 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

 ^$ tyhjä rivi

EsimerkkejäMuokkaa

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

KirjallisuuttaMuokkaa

LähteetMuokkaa

  1. a b c d Brian Kernighan Remembers the Origins of ‘grep’ 22.7.2018. The Newstack. Viitattu 7.8.2018.
  2. CHAPTER 9 columbia.edu. Viitattu 6.9.2019. (englanniksi)

Aiheesta muuallaMuokkaa

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