grep

GREP(1)                  Käyttäjän sovellusohjelmat                 GREP(1)



NIMI
       grep, egrep, fgrep - tulostaa tiedoston rivit, joissa esiintyy
       määritelty merkkijono

YLEISKATSAUS
       grep [-AB] nro] [-CEFGVbchiLlnqsvwxyUu] [-e merkkijono | -f tiedosto]
       [--extended-regexp] [--fixed-strings] [--basic-regexp]
       [--regexp=MERKKIJONO] [--file=TIEDOSTO] [--ignore-case] [--word-regexp]
       [--line-regexp] [--line-regexp] [--no-messages] [--revert-match]
       [--version] [--help] [--byte-offset] [--line-number] [--with-filename]
       [--no-filename] [--quiet] [--silent] [--files-without-match] [--files-
       with-matcces] [--count] [--before-context=NRO] [--after-context=NRO]
       [--context] [--binary] [--unix-byte-offsets] tiedostot...

KUVAUS
       Grep-komento etsii nimetyistä tiedostoista rivejä, joissa esiintyy
       määritelty merkkijono.  (Jollei tiedostoja ole nimetty tai jos on
       nimetty tiedostonimi - , grep etsii merkkijonoa vakiosyötteestä).
       Oletusarvoisesti grep tulostaa rivit, joissa esiintyy määritelty
       merkkijono.

       Grep-komennosta on olemassa kolme muunnelmaa, joita voidaan käyttää
       seuraavien valitsimien kanssa.
       -G, --basic-regexp
              Tulkitsee merkkijonon tavallisena säännöllisenä lausekkeena
              (katso alempaa).  Tämä on oletusarvona.
       -E, --extended-regexp
              Tulkitsee merkkijonon laajennettuna säännöllisenä
              lausekkeena (katso alempaa).
       -F, --fixed-strings
              Tulkitsee merkkijonon merkkijonojen listana, jotka on erotettu
              toisistaan rivinvaihdoilla, ja joista mikä tahansa käy
              etsittäväksi sanaksi.
       Lisäksi on olemassa kaksi muunnelmaa, egrep ja fgrep.  Egrep on
       samantyyppinen (mutta ei täysin identtinen) käskyn grep -E kanssa ja
       se on myös yhteensopiva vanhan, historiallisen Unixin egrep:n kanssa.
       Fgrep on vastaava komennon grep -F kanssa.

       Kaikkia grep-komennon muunnelmia voidaan käyttää seuraavien
       valitsimien kanssa:
       -nro   Haun tulokset tulostetaan siten, että haettua riviä ennen tai
              jälkeen tulostetaan nro kappaletta rivejä tiedostosta.  Grep
              ei kuitenkaan koskaan tulosta yhtään riviä enemmän kuin
              kerran.
       -A  nro , --after-context=NRO
              Tulostaa nro kappaletta haetun rivin jälkeisiä rivejä.
       -B  nro , --before-context=NRO
              Tulostaa nro kappaletta haettua riviä edeltäviä rivejä.
       -C, --context
              Sama kuin -2.
       -V, --version
              Tulostaa grep:n versionumeron virhetulosteeseen.  Tämä
              versionumero tulisi mainita kaikissa virheraporteissa (katso
              alempaa).
       -b, --byte-offset
              Tulostaa tulosteen rivien alkuun tavujen määrän tiedoston
              alusta ennen löytyneitä merkkijonoja.
       -c, --count
              Estää normaalin tulostuksen; tulostaa sen sijaan jokaisesta
              tiedostosta rivien määrän, joista löytyy haettava
              merkkijono.  Valitsimella -v, --revert-match (katso alempaa)
              toiminta on päinvastainen; tulostetaan rivien määrä, joista
              ei löydy haettavaa merkkijonoa.
       -e merkkijono,--regexp=MERKKIJONO
              Käytä merkkijono merkkijonoa; käyttökelpoinen
              merkkijonoille, jotka alkavat merkillä -.
       -f tiedosto,--file=TIEDOSTO
              Poimii merkkijonon tiedosto-nimisestä tiedostosta.
       -h, --no-filename
              Estä tiedostonimien tulostus tulosteen rivien alkuun, kun
              etsitään useammasta kuin yhdestä tiedostosta.
       -i, --ignore-case
              Jätä huomiotta merkkien koko (esim. isot/pienet kirjaimet)
              merkkijonoissa ja syöttötiedostoissa.
       -L, --files-without-match
              Estä normaali tulostus; sen sijaan tulosta jokaisen tiedoston
              nimi, josta ei löydy etsittävää merkkijonoa. Etsintä
              päättyy ensimmäiseen löydettyyn merkkijonoon.
       -l, --files-with-matches
              Estä normaali tulostus; sen sijaan tulosta jokaisen tiedoston
              nimi, josta löytyy etsittävä merkkijono. Etsintä päättyy
              ensimmäiseen löydettyyn merkkijonoon.
       -n, --line-number
              Tulosta jokaisen rivin rivinumero, josta löytyy määritelty
              merkkijono.
       -q, --quiet
              Hiljainen. Estä normaali tulostus. Etsintä päättyy
              ensimmäiseen osumaan.
       -s, --silent
              Ãlä tulosta virheilmoituksia tiedostoista, joita ei ole
              olemassa tai tiedostoista, jotka eivät ole luettavissa.
       -v, --revert-match
              Muuttaa oletustoiminnan päinvastaiseksi; tulostaa rivit, joista
              ei löydy määriteltyä merkkijonoa.
       -w, --word-regexp
              Tulosta vain ne rivit, joista löytyy täydellisesti kokonainen
              etsittävä merkkijono. Haettava merkkijono on joko oltava rivin
              alussa, tai sitä ennen on oltava merkki, joka ei ole kirjain,
              numero tai alaviiva. Vaihtoehtoisesti merkkijono on oltava joko
              rivin lopussa tai sen jälkeen on oltava merkki, joka ei ole
              kirjain, numero tai alaviiva.
       -x, --line-regexp
              Tulosta vain ne haun tulokset, jotka täydellisesti vastaavat
              koko riviä.
       -y     Ei käytössä oleva synonyymi valitsimelle -i.
       -U, --binary
              Käsittele tiedosto(j)a binääritiedostona.  Oletusarvoisesti
              MS-DOS- ja MS-Windows -käyttöjärjestelmissä grep
              määrittelee tiedoston tyypin lukemalla sen alusta ensimmäiset
              32 kilotavua. Jos grep päättelee, että tiedosto on
              tekstitiedosto, se poistaa CR (carriage return) -merkit eli
              rivinvaihtomerkit alkuperäisestä tiedostosta (jotta
              säännölliset lausekkeet toimisivat oikein merkkien ^ ja $
              kanssa).  Käyttämällä valitsinta -U kytketään pois edellä
              mainittu automaattinen tiedostotyypin määrittelytoiminto.
              Tällöin kaikki tiedostot luetaan ja siirretään
              etsintämekanismiin sellaisenaan; eli jos tiedosto on
              tekstitiedosto, jossa on CR/LF -merkit jokaisen rivin lopussa,
              jotkut säännölliset lausekkeet eivät toimi. Tätä
              valitsinta voi käyttää ainoastaan MS-DOS- ja MS-Windows
              -käyttöjärjestelmissä.
       -u, --unix-byte-offsets
              Raportoi Unix-tyylisesti tavujen määrän tiedoston alusta
              ennen löytyneitä merkkijonoja.  Tämä valitsin aiheuttaa sen,
              että grep raportoi tavujen määrän, kuten tiedosto olisi
              Unix-tyylinen tekstitiedosto, eli josta CR-merkit on poistettu.
              Tämä saa aikaan tulokset, jotka ovat identtiset verrattuna
              tulokseen, jos grep ajettaisiin Unix-koneella.  Tällä
              valitsimella ei ole vaikutusta, ellei käytetä samanaikaisesti
              -b valitsinta; sitä tuetaan ainoastaan MS-DOS- ja MS-Windows
              -käyttöjärjestelmissä.

SÃÃNNÃLLISET LAUSEKKEET
       Säännöllinen lauseke on merkkijono, joka kuvailee tietyn
       merkkijonosarjan.  Säännölliset lausekkeet on muodostettu samalla
       tavalla kuin aritmeettiset lausekkeet, yhdistämällä pienempiä
       lausekkeita käyttäen useita operaattoreita.

       Grep ymmärtää kahta erilaista säännöllisten lausekkeiden
       syntaksia: `tavallista' ja `laajennettua.'  GNU grep:n toiminnassa ei
       ole eroa käytettäessä eri syntakseja.  Muissa toteutuksissa
       tavalliset säännölliset lausekkeet ovat vähemmän tehokkaita.
       Seuraava kuvaus sopii laajennettuihin säännöllisiin lausekkeisiin;
       eroavaisuudet tavallisiin säännöllisiin lausekkeisiin on koottu
       yhteenvedoksi myöhemmin.

       Säännölliset lausekkeet, jotka vastaavat yhtä merkkiä, ovat
       tärkeitä työkaluja. Useimmat merkit, mukaanlukien kaikki kirjaimet
       ja numerot, ovat säännöllisiä lausekkeita, jotka vastaavat
       itseään.  Mitä tahansa metamerkkiä, jolla on erityinen merkitys
       voidaan käyttää laittamalla sen eteen kenoviiva.

       Merkkijonolista, joka on sulkujen [ ja ] sisällä, vastaa mitä
       tahansa yksittäistä merkkiä kyseisellä listalla.  Jos listan
       ensimmäinen merkki on ^-merkki, se vastaa mitä tahansa merkkiä, joka
       ei ole listalla.  Esimerkiksi säännöllinen lauseke [0123456789]
       vastaa mitä tahansa yhtä yksinumeroista lukua. ASCII-merkkien alue
       voidaan määritellä antamalla ensimmäinen ja viimeinen merkki,
       erotettuna toisistaan tavuviivalla.  Lisäksi on määritelty
       etukäteen tiettyjä merkkien luokkia.  Niiden nimet ovat itsensä
       selittäviä ja ne ovat [:alnum:], [:alpha:], [:cntrl:], [:digit:],
       [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:] ja
       [:xdigit:].  Esimerkiksi [[:alnum:]] tarkoittaa samaa kuin [0-9A-Za-z].
       Jälkimmäinen muoto on riippuvainen ASCII-merkkien koodauksesta, kun
       taas aiempi muoto on siirrettävämpi.  (Huomaa, että kaksoispisteet
       ja sulkeet luokkien nimissä ovat osa nimeä ja ne on huomioitava.)
       Monilla metamerkeillä ei ole erityistä merkitystä, kun niitä
       käytetään listoissa.  Ottaaksesi huomioon merkin ], aseta se
       ensimmäiseksi listaan.  Samalla tavalla, ottaaksesi huomioon merkin ^,
       aseta se mihin tahansa muualle kuin ensimmäiseksi.  Viimeiseksi,
       ottaaksesi huomioon merkin -, aseta se viimeiseksi.

       Piste .  vastaa mitä tahansa yhtä merkkiä.  Symboli \w on synonyymi
       merkinnälle [[:alnum:]] ja \W on synonyymi merkinnälle [^[:alnum]].

       "Caret"-merkki ^ ja dollarimerkki $ ovat metamerkkejä, jotka vastaavat
       tyhjiä merkkejä rivin alussa ja lopussa.  Symbolit \< ja \> vastaavat
       tyhjää merkkijonoa sanan alussa ja lopussa.  Symboli \b vastaa
       tyhjää merkkijonoa sanan alussa tai lopussa, ja \B vastaa tyhjää
       merkkijonoa mikäli se ei ole sanan alussa tai lopussa.

       Säännöllisen lausekkeen jälkeen, joka vastaa yhtä merkkiä,
       voidaan käyttää mitä tahansa monista toisto-operaattoreista:
       ?      Edeltävä kohta on valinnainen ja se etsitään enimmillään
              kerran.
       *      Edeltävä kohta etsitään nolla tai useamman kerran.
       +      Edeltävä kohta etsitään kerran tai useammin.
       {n}    Edeltävä kohta etsitään tasan n kertaa.
       {n,}   Edeltävä kohta etsitään n tai useamman kerran.
       {,m}   Edeltävä kohta on valinnainen ja se etsitään enintään m
              kertaa.
       {n,m}  Edeltävä kohta etsitään vähintään n kertaa, mutta ei
              useammin kuin m kertaa.

       Kaksi säännöllistä lauseketta voidaan liittää toisiinsa; syntyvä
       säännöllinen lauseke vastaa mitä tahansa merkkijonoa, joka
       muodostetaan liittämällä kaksi merkkijonoa, jotka vastaavasti
       vastaavat yhteen liitettyjä lausekkeita.

       Kaksi säännöllistä lauseketta voidaan liittää toisiinsa ns.
       putkitus-merkillä (infix) |; syntyvä lauseke vastaa mitä tahansa
       merkkijonoa, joka vastaa jompaa kumpaa lauseketta.

       Toistaminen ohittaa liittämisen, joka taas ohittaa vuorottelun.
       Kokonainen lauseke voidaan laittaa sulkeisiin, jolla voidaan ohittaa
       nämä "ohitussäännöt".

       Takaisinviittaus \n, jossa n on yksinumeroinen luku, vastaa
       merkkijonoa, jota aikaisemmin etsittiin säännöllisen lausekkeen
       n:nessä sulkulausekkeessa.

       Tavallisissa säännöllisissä lausekkeissa metamerkit ?, +, {, |, (,
       ja ) menettävät erityistarkoituksensa; käytä sen sijaan versioita,
       joissa on kenoviiva edessä \?, \+, \{, \|, \(, ja \).

       Käskyssä egrep metamerkki { menettää erityistarkoituksensa; käytä
       sensijaan \{.

DIAGNOSTIIKKA
       Normaalisti ohjelman paluuarvo (tila ohjelman loputtua) on 0, jos on
       löytynyt haettuja merkkijonoja ja  1 jos niitä ei ole löytynyt. ( -v
       valitsin kääntää toiminnan.)  Paluuarvo on 2, jos merkkijonossa oli
       virheitä, tiedostoja joita ei pystytty lukemaan tai muita
       järjestelmävirheitä.

BUGIT
       Lähetä bugiraportit osoitteeseen bug-gnu-utils@prep.ai.mit.edu.
       Varmista ennen lähettämistä, että ``grep''-sana mainitaan
       ``Subject:''-kentässä.

       Suuret toistomäärät {m,n} rakenteessa voivat aiheuttaa sen, että
       grep käyttää paljon muistia.  Lisäksi, tietyt muut vaikeaselkoiset
       säännölliset lausekkeet tarvitsevat eksponentiaalisesti enemmän
       aikaa ja tilaa ja voivat aiheuttaa sen, että muisti loppuu.

       Takaisinviittaukset ovat erittäin hitaita ja voivat tarvita
       eksponentiaalisesti enemmän aikaa.



GNU Project                   7. Huhtikuuta 1998                       GREP(1)