Movatterモバイル変換


[0]ホーム

URL:


Siirry sisältöön
Wikipedia
Haku

Grep

Wikipediasta

Grep (searchglobally for aregularexpression andprint) onUnix-käyttöjärjestelmänkomentoriviohjelma, joka etsiisäännöllisillä lausekkeilla määriteltyjämerkkijonojatiedostoista.[1] Ohjelman nimi on peräisined-tekstieditorin komennostag/re/p.[1] Ohjelman on kehittänytKen Thompson.[1] Ohjelma vaikutti myössed-rivieditorin kehitykseen.[2]

Tietokoneslangissagreppaus taigreppaaminen tarkoittaa yleensä mitä tahansa merkkijonojen etsimistä.

Historia

[muokkaa |muokkaa wikitekstiä]

Ohjelma on peräisin alkuperäisestä Unixista, jonka piti toimiaPDP-11 -tietokoneella pienellä muistimäärällä.Ken Thompson tekied-ohjelman tekstin muokkaamiseen primitiivisillä näyttölaitteilla ilman kursoria. ed salli säännöllisten lausekkeiden avulla, jossa 'g' tarkoitti hakua, 'p' tulostamista ja 're' lauseketta ja tämä esitettiin muodossa:g/re/p. Lee McMahon halusi ohjelman, jolla pystyi hakemaan tiedostosta merkkijonoja ja ongelmana oli, että tiedosto oli tuolloin liian suuri tietokoneenmuistimäärälle jotta sitä olisi voitu avata editorissa. Tämän johdosta Thompson teki ohjelman grep.[1]Alfred V. Aho ja Margaret J. Corasick kehittivätAho-Corasick -algoritmin merkkijonojen hakemiseen, joka toteutettiin fgrep-versioon ohjelmasta.[3][4][5]

Toteutuksia

[muokkaa |muokkaa wikitekstiä]

grep-ohjelmasta on useita toteutuksia:[6]

  • ensimmäisen toteuttivat Ken Thompson jaDennis Ritchie[6]
  • myöhemmin Lee E. McMahon toteutti uuden version ohjelmasta[6]
  • Alfred Aho toteutti egrep- ja fgrep-versiot ohjelmasta[6]
  • BSD-projektin versio, jonka alkuperäiset kehittäjät olivat James Howard ja Dag-Erling Coïdan Smørgrav[7][8]
  • GNU-projektin tekemä versio, jonka alkuperäinen kehittäjä on Mike Haertel[7]
  • Pienissä ja sulautetuissa järjestelmissä käytetynBusyBoxin grep-toteutus perustuuC-kielenstandardikirjaston toteutukseen säännöllisille lausekkeille.[9]

GNU grep käyttääBoyer-Moore -algoritmia, joka ensin hakee haettavan merkkijonon ensimmäisen merkin ja hakutaulun avulla päättelee miten pitkälle eteenpäin se voi hypätä jos merkki ei täsmää haettuun.[7][10]

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

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. abcdDavid Cassel: 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)
  3. Alfred V. Aho & Margaret J. Corasick: Efficient string matching: an aid to bibliographic search dl.acm.org. kesäkuu 1975. doi:10.1145/360825.360855 Viitattu 26.4.2023. (englanniksi)
  4. Bertrand Meyer: Incremental String Matching (PDF) se.inf.ethz.ch. 1985. Viitattu 26.4.2023. (englanniksi)
  5. fgrep ss64.com. Viitattu 26.4.2023. (englanniksi)
  6. abcdM. Douglas McIlroy: A Research UNIX Reader: Annotated Excerpts from the Programmer’s Manual, 1971-1986 (PDF) cs.dartmouth.edu. Viitattu 6.9.2019. (englanniksi)
  7. abcMike Haertel: why GNU grep is fast lists.freebsd.org. 21.8.2010. Viitattu 26.4.2023. (englanniksi)
  8. index : src cgit.freebsd.org. Viitattu 26.4.2023. (englanniksi)
  9. Mini grep implementation for busybox using libc regex. git.busybox.net. Viitattu 16.5.2024.
  10. Robert S. Boyer & J. Strother Moore: A fast string searching algorithm dl.acm.org. lokakuu 1977. doi:10.1145/359842.359859 (englanniksi)

Kirjallisuutta

[muokkaa |muokkaa wikitekstiä]

Aiheesta muualla

[muokkaa |muokkaa wikitekstiä]
Noudettu kohteesta ”https://fi.wikipedia.org/w/index.php?title=Grep&oldid=23837457
Luokka:

[8]ページ先頭

©2009-2026 Movatter.jp