Nimi
grep, egrep, fgrep – tulostaa rivit, jotka vastaavat mallia
Synopsis
grep PATTERN
grep
Kuvaus
grep hakee nimetyt sisääntulotiedostot tiedostoista (tai vakiosyötteestä, jos mitään tiedostoja ei ole mainittu, tai jos tiedostonimeksi on annettu yksi väliviiva miinus (-))rivejä, jotka sisältävät annettua PATTERNia vastaavia rivejä. Oletusarvoisesti grep tulostaa yhteensopivat rivit.
Lisäksi on käytettävissä kaksi vaihtoehtoista ohjelmaa egrep ja fgrep. egrep on sama kuin grep -E. fgrep on sama kuin grep -F. Suora kutsuminen joko egrepinä tai fgrepinä on vanhentunut, mutta se tarjotaan, jotta niihin tukeutuvat historialliset sovellukset voivat käynnistyä muuttumattomina.
Options
Generic Program Information
–help
Tulostaa käyttöviestin, jossa on lyhyt yhteenveto näistä komentorivivaihtoehdoista ja vikailmoitusosoitteesta ja poistuu sen jälkeen.
-V, –version Tulostaa grep:n versionumeron vakiolähdön virtaan. Tämä versionumero tulee sisällyttää kaikkiin vikailmoituksiin (katso alla).
Matcher Selection
-E, –extended-regexp Tulkitse PATTERN laajennettuna säännöllisenä lausekkeena (ERE, katso alla). (-E on määritelty POSIXissa .) -F, –fixed-strings Tulkitse PATTERN listana kiinteitä merkkijonoja, jotka on erotettu toisistaan rivinvaihtoviivoilla ja joista mikä tahansa on sovitettava. (-F on määritelty POSIX-järjestelmässä.) -G, –basic-regexp Tulkitse PATTERN perus-säännöllisenä lausekkeena (BRE, katso jäljempänä). Tämä on oletusarvo. -P, –perl-regexp Tulkitse PATTERN Perl-säännöllisenä lausekkeena. Tämä on hyvin kokeellinen ja grep -P saattaa varoittaa toteutumattomista ominaisuuksista.
Matching Control
-e PATTERN, –regexp=PATTERN Käytä PATTERNia kuviona. Tätä voidaan käyttää useiden hakukuvioiden määrittämiseen tai väliviivalla (-) alkavan kuvion suojaamiseen (-e on POSIXin määrittelemä .) -f FILE, –file=FILE Haetaan kuvioita tiedostosta FILE, yksi per rivi. Tyhjä tiedosto sisältää nolla kuviota, joten se ei vastaa mitään. (-f on määritelty POSIX .) -i, –ignore-case Jätetään huomiotta isojen ja pienten kirjainten väliset erot sekä PATTERN- että syöttötiedostoissa. (-i on määritelty POSIX .) -v, –invert-match Käännetään vastaavuuden merkitys, jotta voidaan valita ei- vastaavia rivejä. (-v on määritelty POSIX .) -w, –word-regexp Valitse vain ne rivit, jotka sisältävät kokonaisia sanoja muodostavia osumia. Testi on, että täsmäävän merkkijonon on oltava joko rivin alussa tai sitä edeltää muu kuin sanan muodostava merkki. Vastaavasti sen on oltava joko rivin lopussa tai sen jälkeen on oltava muu kuin sanan muodostava merkki.Sanan muodostavia merkkejä ovat kirjaimet, numerot ja alleviivaus. -x, –line-regexp Valitse vain ne osumat, jotka täsmälleen vastaavat koko riviä. (-x on määritelty POSIXissa .) -y
Vanhentunut synonyymi sanalle -i.
Yleinen ulostulonohjaus
-c, –count Normaalin ulostulon tukahduttaminen; sen sijaan tulostetaan täsmäävien rivien lukumäärä jokaisesta syötetiedostosta. Vaihtoehdolla -v, –invert-match (katso alla), laskee ei-täsmäävät rivit. (-c on määritelty POSIXissa .) –color, –colour Ympäröi sovitetut (ei-tyhjät) merkkijonot, sovitetut rivit, kontekstirivit, tiedostojen nimet, rivinumerot, tavuetäisyydet ja erottimet (kenttien ja kontekstirivien ryhmien osalta) pakosekvensseillä, jotta ne näkyvät värillisinä terminaalissa. Värit määritellään ympäristömuuttujalla GREP_COLORS. Vanhentunutta ympäristömuuttujaa GREP_COLOR tuetaan edelleen, mutta sen asetus ei ole ensisijainen. WHEN on never, always tai auto. -L, –files-without-match Tukahduttaa normaalin tulostuksen; sen sijaan tulostaa jokaisen sellaisen syötetiedoston nimen, josta ei normaalisti olisi tulostettu tulostetta. Skannaus pysähtyy ensimmäiseen vastaavaan tiedostoon. -l, –files-with-matches Tukahduttaa normaalin tulostuksen; sen sijaan tulostetaan jokaisen sellaisen syötetiedoston nimi, josta tuloste olisi normaalisti tulostettu. Skannaus pysähtyy ensimmäiseen vastaavuuteen. (-l on määritelty POSIX .) -m NUM, –max-count=NUM Lopettaa tiedoston lukemisen NUM täsmäävän rivin jälkeen. Jos syötteenä on säännöllisen tiedoston vakiosyöttö ja tulostetaan NUM vastaavaa riviä, grep varmistaa, että vakiosyöttö sijoitetaan juuri viimeisen vastaavan rivin jälkeen ennen poistumista, riippumatta siitä, onko perässä kontekstirivejä. Näin kutsuva prosessi voi jatkaa hakua. Kun grep pysähtyy NUM täsmäävän rivin jälkeen, se tulostaa kaikki perässä olevat kontekstirivit. Kun myös -c- tai –count-optiota käytetään, grep ei anna lukumäärää, joka on suurempi kuin NUM. Kun käytetään myös -v- tai –invert-match-vaihtoehtoa, grep pysähtyy sen jälkeen, kun se on antanut NUM ei-täsmääviä rivejä. -o, –only-matching Tulostaa vain täsmäävän rivin täsmäävät (ei-tyhjät) osat, ja kukin tällainen osa erilliselle riville. -q, –quiet, –silent Hiljaisuus; ei kirjoita mitään standarditulosteeseen. Poistutaan välittömästi nollatilalla, jos yhtään vastaavuutta löytyy, vaikka virhe havaittaisiinkin. Katso myös optio-s tai –no-messages. (-q on määritelty POSIX .) -s, –no-messages Tukahduttaa virheilmoitukset olemattomista tai lukukelvottomista tiedostoista. Huomautus siirrettävyydestä: toisin kuin GNU grep, 7th Edition Unix grep ei ollut POSIXin mukainen, koska siitä puuttui -q ja sen -s-vaihtoehto käyttäytyi kuten GNU grepin -q-vaihtoehto.USG-tyylinen grep ei myöskään sisältänyt -q-vaihtoehtoa, mutta sen -s-vaihtoehto käyttäytyi kuten GNU grep. Kannettavien komentotulkkiskriptien tulisi välttää sekä -q että -s ja ohjata vakio- ja virhetulosteet sen sijaan tiedostoon /dev/null. (POSIX määrittelee -s:n.)
Output Line Prefix Control
-b, –byte-offset Tulosta 0-pohjainen tavuoffset syötetiedoston sisällä ennen jokaista tulostusriviä. Jos -o (–only-matching) on määritetty, tulostetaan itse matching-osan offset. -H, –with-filename Tulosta tiedostonimi jokaisesta osumasta. Tämä on oletusarvo, kun haettavia tiedostoja on useampi kuin yksi. -h, –no-filename Poistaa tiedostonimien etuliitteen tulostuksessa. Tämä on oletusarvo, kun haettavana on vain yksi tiedosto (tai vain vakiotulo). –label=LABEL Näyttää vakiosyötteestä tulevan syötteen tiedostosta LABEL tulevana syötteenä. Tämä on erityisen hyödyllistä, kun käytetään sellaisia työkaluja kuinkezgrep, esim. gzip -cd foo.gz | grep –label=foo -H jotain. Katso myös -H-vaihtoehto. -n, –line-number Esitä jokaiselle tulostusriville 1-pohjainen rivinumero sen syöttötiedostossa. (-n määritetään POSIXin mukaan .) -T, –initial-tab Varmista, että rivin varsinaisen sisällön ensimmäinen merkki on tabulaattoripisteessä, jotta tabulaattoreiden kohdistaminen näyttää normaalilta. Tämä on hyödyllistä sellaisten vaihtoehtojen kanssa, jotkaesimerkitsevät tulosteensa varsinaiseen sisältöön: -H,-n ja -b. Parantaakseen todennäköisyyttä sille, että yhden tiedoston rivit alkavat kaikki samasta sarakkeesta, tämä aiheuttaa myös sen, että rivin numero ja tavuoffset (jos sellainen on) tulostetaan minimikokoisen kentän leveydellä. -u, –unix-byte-offsets Raportoi Unix-tyyliset tavuoffsetit. Tämä kytkin saa grep:n raportoimaan tavuoffsetit ikään kuin tiedosto olisi Unix-tyylinen tekstitiedosto, eli CR-merkit on poistettu. Tämä tuottaa samat tulokset kuin grep:n käyttö Unix-koneella. Tällä vaihtoehdolla ei ole vaikutusta, ellei myös -b-optiota käytetä; sillä ei ole vaikutusta muilla alustoilla kuin MS-DOS- ja MS-Windows-käyttöjärjestelmillä. -Z, –null Tulostaa nollatavun (ASCII:n NUL-merkki) tiedostonimeä normaalisti seuraavan merkin sijasta. Esimerkiksi grep -lZtulostaa nollatavun jokaisen tiedostonimen jälkeen tavanomaisen rivinvaihdon sijasta. Tämä vaihtoehto tekee tulosteesta yksiselitteisen myös silloin, kun tiedostonimet sisältävät epätavallisia merkkejä, kuten rivinvaihdon. Tätä vaihtoehtoa voidaan käyttää komentojen find -print0, perl -0, sort -z ja xargs -0 kanssa käsittelemään mielivaltaisia tiedostonimiä, myös sellaisia, jotka sisältävät rivinvaihtomerkkejä.
Context Line Control
-A NUM, –after-context=NUM Tulostaa NUM riviä perässä olevaa kontekstia vastaavien rivien jälkeen. Asettaa ryhmänerottimen (–) sisältävän rivin vierekkäisten täsmäävien ryhmien väliin. Jos käytössä on -o tai –only-matching -vaihtoehto, tällä ei ole vaikutusta ja siitä annetaan varoitus. -B NUM, –before-context=NUM Tulostaa NUM riviä johtavaa kontekstia ennen vastaavia rivejä. Asettaa rivin, joka sisältää ryhmäerottimen (–), vierekkäisten täsmäävien ryhmien väliin. Jos käytössä on -o tai –only-matching -vaihtoehto, tällä ei ole vaikutusta ja annetaan varoitus. -C NUM, -NUM, –context=NUM Tulostaa NUM riviä tulostuskontekstia. Asettaa vierekkäisten osumaryhmien väliin rivin, joka sisältää ryhmäerottimen (–). Jos käytössä on -o tai–only-matching -vaihtoehto, tällä ei ole vaikutusta ja annetaan varoitus.
Tiedostojen ja hakemistojen valinta
-a, –text Käsittele binääritiedostoa ikään kuin se olisi tekstiä; tämä vastaa –binary-files=text -valintaa. –binary-files=TYPE Jos tiedoston ensimmäiset tavut osoittavat, että tiedosto sisältää binääritietoa, oletetaan, että tiedosto on tyyppiä TYPE. Oletusarvoisesti TYPE onbinary, ja grep antaa yleensä joko yksirivisen viestin, joka kertoo, että binääritiedosto täsmää, tai ei viestiä, jos täsmäämistä ei tapahdu. Jos TYPEon without-match, grep olettaa, että binääritiedosto ei täsmää; tämä vastaa -I-vaihtoehtoa. Jos TYPE on teksti, grep käsittelee binääritiedoston ikään kuin se olisi tekstiä; tämä vastaa -a-vaihtoehtoa. Varoitus: grep –binary-files=text saattaa tulostaa binäärimössöä, millä voi olla ikäviä sivuvaikutuksia, jos tuloste on terminaali ja jos terminaaliohjain tulkitsee osan siitä komentoina. -D ACTION, –devices=ACTION Jos syötetiedosto on laite, FIFO tai socket, käytä ACTIONia sen käsittelyyn. Oletusarvoisesti ACTION on read, mikä tarkoittaa, että laitteet luetaan kuin ne olisivat tavallisia tiedostoja. Jos ACTION on skip, laitteet ohitetaan äänettömästi. -d ACTION, –directories=ACTION Jos syötetiedosto on hakemisto, käytä ACTIONia sen käsittelyyn. Oletusarvoisesti ACTION on read, mikä tarkoittaa, että hakemistot luetaan aivan kuin ne olisivat tavallisia tiedostoja. Jos ACTION on skip, hakemistot ohitetaan hiljaa. Jos ACTION on recurse, grep lukee rekursiivisesti kaikki kunkin hakemiston alla olevat tiedostot; tämä vastaa -r-vaihtoehtoa. –exclude=GLOB Ohita tiedostot, joiden perusnimi täsmää GLOB:iin (käyttämällä jokerimerkkitapauksia). Tiedostonimen glob voi käyttää *, ?, ja -merkkejä jokerimerkkeinä ja \ lainata jokerimerkin tai backslash-merkin kirjaimellisesti. –exclude-from=FILE Ohita tiedostot, joiden perusnimi täsmää johonkin FILE:stä luettuun tiedostonimen globiin (käyttäen jokerimerkkien täsmäytystä kuten kohdassa –exclude on kuvattu). –exclude-dir=DIR Poistaa hakemistot, jotka vastaavat mallia DIR, rekursiivisista hauista. -I
Käsittele binääritiedosto ikään kuin se ei sisältäisi vastaavaa dataa; tämä vastaa –binary-files=without-match -vaihtoehtoa.
–include=GLOB Hae vain tiedostot, joiden perusnimi täsmää GLOB:iin (käyttäen jokerimerkkitäsmäytystä, kuten on kuvattu kohdassa –exclude). -R, -r, –recursive Lukee rekursiivisesti kaikki tiedostot kunkin hakemiston alta; tämä vastaa -d recurse -vaihtoehtoa.
Muut asetukset
–line-buffered Käytä rivipuskurointia tulosteessa. Tämä voi aiheuttaa suorituskyvyn heikkenemistä. –mmap
Jos mahdollista, käytä mmap(2)-järjestelmäkutsua syötteen lukemiseen oletusarvoisen read(2)-järjestelmäkutsun sijasta. Joissakin tilanteissa –mmap tuottaa paremman suorituskyvyn. –mmap voi kuitenkin aiheuttaa määrittelemätöntä käyttäytymistä (mukaan lukien ytimen tyhjennykset), jos syötetiedosto kutistuu grep:n toimiessa tai jos tapahtuu I/O-virhe.
-U, –binary Käsittele tiedosto(t) binäärinä. Oletusarvoisesti MS-DOS- ja MS-Windows-käyttöjärjestelmissä grep arvaa tiedostotyypin katsomalla tiedostosta luetun ensimmäisen 32KB:n sisällön. Jos grep päättää, että tiedosto on tekstitiedosto, se poistaa CR-merkit tiedoston alkuperäisestä sisällöstä (jotta säännölliset lausekkeet, joissa on ^ ja $, toimisivat oikein). Määrittämällä -U tämä arvaus kumotaan, jolloin kaikki tiedostot luetaan ja välitetään sovitusmekanismille sanatarkasti; jos tiedosto on tekstitiedosto, jonka jokaisen rivin lopussa on CR/LF-parit, tämä aiheuttaa joidenkin säännöllisten lausekkeiden epäonnistumisen. Tällä valinnalla ei ole vaikutusta muilla kuin MS-DOS- ja MS-Windows-alustoilla. -z, –null-data Käsittele syötettä riveinä, joista jokainen päättyy nollatavuun (ASCII:n NUL-merkki) rivinvaihdon sijasta. Kuten -Z- tai –null-vaihtoehtoa, tätä vaihtoehtoa voidaan käyttää komentojen kuten sort -z kanssa mielivaltaisten tiedostonimien käsittelyyn.
Säännölliset lausekkeet
Säännöllinen lauseke on kuvio, joka kuvaa joukon merkkijonoja. Säännölliset lausekkeet rakennetaan analogisesti aritmeettisten lausekkeiden kanssa käyttämälläerilaisia operaattoreita pienempien lausekkeiden yhdistämiseen.
grep ymmärtää kolmea eri versiota säännöllisten lausekkeiden syntaksista: ”basic”, ”extended” ja ”perl”. GNU grep:ssä ei ole eroa käytettävissä olevissa toiminnoissa perus- ja laajennetun syntaksin välillä. Muissa toteutuksissa perus-säännölliset lausekkeet ovat vähemmän tehokkaita. Seuraava kuvaus koskee laajennettuja säännöllisiä lausekkeita; perus-säännöllisiä lausekkeita koskevat erot on esitetty tiivistetysti tämän jälkeen. Perlin säännölliset lausekkeet antavat lisätoiminnallisuutta, ja ne on dokumentoitu asiakirjoissa pcresyntax(3) ja pcrepattern(3), mutta ne eivät välttämättä ole käytettävissä kaikissa järjestelmissä.
Perusrakennuspalikat ovat säännönmukaisia lausekkeita, jotka täsmäävät yhteen merkkiin. Useimmat merkit, mukaan lukien kaikki kirjaimet ja numerot, ovat säännönmukaisia lausekkeita, jotka vastaavat itseään. Mikä tahansa metamerkki, jolla on erityinen merkitys, voidaan lainata edeltämällä sitä takaisinviivalla.
Piste . vastaa mitä tahansa yksittäistä merkkiä.
Hahmoluokat ja sulku-ilmaukset
Sulku-ilmaus on luettelo merkkejä, jotka on suljettu . Se vastaa mitä tahansa yksittäistä merkkiä kyseisessä luettelossa; jos luettelon ensimmäinen merkki on piste ^, se vastaa mitä tahansa merkkiä, joka ei ole luettelossa. Esimerkiksi säännöllinen lauseke vastaa jokaista yksittäistä numeroa.
Sulkeislausekkeen sisällä alue-lauseke koostuu kahdesta merkistä, jotka on erotettu toisistaan väliviivalla. Se vastaa mitä tahansa yksittäistä merkkiä, joka sijoittuu näiden kahden merkin väliin, nämä merkit mukaan luettuina, käyttäen paikallisen alueen rinnastusjärjestystä ja merkistöjä. Esimerkiksi oletusarvoisessa C-lokaalissa vastaa. Monet paikallisympäristöt lajittelevat merkit sanakirjajärjestykseen, ja näissä paikallisympäristöissä se ei yleensä vastaa merkkiä ; se voi esimerkiksi vastata merkkiä ,. Saadaksesi perinteisen tulkinnan sulkujen lausekkeista voit käyttää C-paikallisaluetta asettamalla ympäristömuuttujanLC_ALL arvoksi C.
Loppujen lopuksi tietyt nimetyt merkkiluokat ovat ennalta määriteltyjä sulkujen lausekkeissa seuraavasti. Niiden nimet ovat itsestään selviä, ja ne ovat , , , , , , , , , , , , ja . Esimerkiksi ] tarkoittaa , paitsi että jälkimmäinen muoto riippuu Clocale- ja ASCII-merkistökoodauksesta, kun taas ensimmäinen on riippumaton lokaalista ja merkistöistä. (Huomaa, että näissä luokkanimissä olevat sulkeet ovat osa symbolisia nimiä, ja ne on sisällytettävä sulkujen lisäksi, jotka rajaavat sulkujen lausekkeen). Useimmat metamerkit menettävät erityismerkityksensä sulkujen sisällä. Jos haluat sisällyttää kirjainmerkin ], aseta se luettelon ensimmäiseksi. Vastaavasti, jos haluat sisällyttää kirjainmerkin ^, sijoita se kaikkialle muualle kuin ensimmäiseksi. Jos haluat sisällyttää kirjainmerkin -, aseta se viimeiseksi.
Ankkurointi
Karetti ^ ja dollarimerkki $ ovat metamerkkejä, jotka vastaavat tyhjää merkkijonoa rivin alussa ja lopussa.
Takaviivamerkki ja erikoisilmaukset
Symbolit \< ja \> vastaavat vastaavasti tyhjää merkkijonoa sanan alussa ja lopussa. Symboli \b vastaa tyhjää merkkijonoa sanan reunassa, ja \B vastaa tyhjää merkkijonoa, jos se ei ole sanan reunassa. Symboli \w on synonyymi sanalle] ja \W on synonyymi sanalle ].
toisto
Säännöllistä lauseketta voi seurata jokin useista toisto-operaattoreista: ?
Edeltävä kohde on valinnainen ja sovitetaan korkeintaan kerran.
*
Edeltävä kohde sovitetaan nolla tai useampia kertoja.
+
Edeltävä kohde sovitetaan yhden tai useamman kerran.
{n}
Edeltävään kohteeseen täsmälleen n kertaa.
{n,}
Edeltävään kohteeseen täsmätään vähintään n kertaa.
{,m}
Edeltävään kohteeseen täsmää korkeintaan m kertaa.
{n,m}
Edeltävään kohteeseen täsmää vähintään n kertaa, mutta enintään m kertaa.
Konkatenaatio
Kaksi säännöllistä lauseketta voidaan ketjuttaa toisiinsa; tuloksena saatava säännönmukainen lauseke täsmää minkä tahansa merkkijonon kanssa, joka muodostetaan ketjuttamalla yhteen kaksi merkkijonoa, jotka täsmäävät ketjutettuihin lausekkeisiin.
Vaihtoehto
Kaksi säännöllistä lauseketta voidaan yhdistää infiksioperaattorilla |; tuloksena oleva säännöllinen lauseke vastaa mitä tahansa merkkijonoa, joka vastaa jompaakumpaa vaihtoehtoista lauseketta.
Precedence
Toisto on etusijalla ketjuttamiseen nähden, joka puolestaan on etusijalla vuorotteluun nähden. Kokonaisen lausekkeen voi sulkea sulkuihin näiden etusijasääntöjen ohittamiseksi ja alilausekkeen muodostamiseksi.
Takaviittaukset ja alilausekkeet
Takaviittaus \n, jossa n on yksi numero, vastaa osajonoa, jota on aiemmin vastannut säännönmukaisen lausekkeen n:simmäinen sulkeissa oleva alilauseke.
Basic vs. Extended Regular Expressions
Perussäännöllisissä säännöllisissä lausekkeissa metamerkit ?, +, {, |, (, ja ) menettävät erityismerkityksensä; sen sijaan käytetään takaviivoitettuja versioita \?, \+, \{, \|, \(, ja \).
Traditionaalinen egrep ei tukenut {-metamerkkiä, ja jotkut egrep-toteutukset tukevat sen sijaan \{, joten siirrettävien skriptien tulisi välttää {:aa grep -E -malleissa ja käyttää sitä kirjaimellisen {:n vastaamiseen.
GNU grep -E pyrkii tukemaan perinteistä käyttöä olettamalla, että { ei ole erikoismerkki, jos se olisi epäkelpo intervallin määrittelyn alku. Esimerkiksi komento grep -E ’{1’ etsii kaksimerkkistä merkkijonoa {1 sen sijaan, että se ilmoittaisi syntaksivirheestä tavallisessa lausekkeessa. POSIX.2 sallii tämän käyttäytymisen laajennuksena, mutta siirrettävien skriptien tulisi välttää sitä.
Ympäristömuuttujat
Grepin käyttäytymiseen vaikuttavat seuraavat ympäristömuuttujat.
Kategorian LC_foo lokaliteetti määritetään tarkastelemalla kolmea ympäristömuuttujaa LC_ALL, LC_foo, LANG, tässä järjestyksessä. Ensimmäinen näistä muuttujista, joka asetetaan, määrittää lokaalin. Jos esimerkiksi LC_ALL-muuttujaa ei ole asetettu, mutta LC_MESSAGES-muuttujan arvoksi on asetettupt_BR, LC_MESSAGES-luokassa käytetään Brasilian portugalin kielialuetta. C-lokaalia käytetään, jos mikään näistä ympäristömuuttujista ei ole asetettu, jos lokaluetteloa ei ole asennettu tai jos grep:tä ei ole käännetty kansallisen kielituen ( NLS ) kanssa.
GREP_OPTIONS Tämä muuttuja määrittää oletusasetukset, jotka asetetaan nimenomaisten asetusten eteen. Jos esimerkiksi GREP_OPTIONS on’–binary-files=without-match –directories=skip’, grep käyttäytyy kuin kaksi vaihtoehtoa –binary-files=without-match ja–directories=skip olisi määritetty ennen nimenomaisia vaihtoehtoja. Vaihtoehtojen määrittelyt erotetaan välilyönneillä. Takaviivalla vältetään seuraava merkki, joten sitä voidaan käyttää määritettäessä vaihtoehtoa, joka sisältää välilyöntiä tai takaviivaa. GREP_COLOR Tämä muuttuja määrittää värin, jolla täsmäävä (ei-tyhjä) teksti korostetaan. Se on vanhentunut GREP_COLORS-muuttujan hyväksi, mutta sitä tuetaan edelleen. GREP_COLORS-ominaisuudet themt, ms ja mc ovat etusijalla siihen nähden. Se voi määrittää vain värin, jota käytetään korostamaan täsmäävää, ei-tyhjää tekstiä millä tahansa täsmäävällä rivillä (valitulla rivillä, kun komentorivioptio -v on jätetty pois, tai kontekstirivillä, kun -v on määritetty). Oletusarvo on 01;31, mikä tarkoittaa lihavoitua punaista etualalla olevaa tekstiä terminaalin oletustaustalla. GREP_COLORS Määrittää värit ja muut ominaisuudet, joita käytetään tulosteen eri osien korostamiseen. Sen arvo on kaksoispisteellä erotettu luettelo ominaisuuksista, joiden oletusarvo on ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36, kun rv- ja ne- boolean-ominaisuudet jätetään pois (eli false). Tuetut ominaisuudet ovat seuraavat. sl=
SGR-osa-merkkijono koko valituille riveille (eli täsmääville riveille, kun komentorivioptio -v on jätetty pois, tai ei-täyttäville riveille, kun -v on määritetty). Jos kuitenkin sekä boolean rv-ominaisuus että -v-komentorivivaihtoehto on määritetty, se koskee sen sijaan kontekstiin sopivia rivejä. oletusarvo on tyhjä (eli päätelaitteen oletusarvoinen väripari).
cx=
SGR-osajono koko kontekstiin kuuluville riveille (eli ei-täsmäyksellisille riveille, kun -v-komentorivivaihtoehto jätetään pois, tai täsmääville riveille, kun -v-oli määritetty). Jos kuitenkin sekä boolen rv-ominaisuus että -v-komentorivivaihtoehto on määritetty, se koskee sen sijaan valittuja ei-täsmääviä rivejä. Oletusarvo on tyhjä (eli päätelaitteen oletusväripari).
rv
Boolean-arvo, joka kääntää (vaihtaa) sl=- ja cx=-ominaisuuksien merkityksen, kun -v-komentorivivaihtoehto on määritetty. Oletusarvo on false (eli kyky jätetään pois).
mt=01;31
SGR-osajono, joka vastaa ei-tyhjää tekstiä millä tahansa täsmäävällä rivillä (eli valitulla rivillä, kun komentorivioptio -v jätetään pois, tai kontekstirivillä, kun -v on määritetty). Tämän asetuksen asettaminen vastaa sekä ms=:n että mc=:n asettamista kerralla samaan arvoon. Oletusarvo on lihavoitu punainen tekstin etuala nykyisen rivin taustan päällä.
ms=01;31
SGR-osa merkkijono, joka vastaa ei-tyhjää tekstiä valitulla rivillä. (Tätä käytetään vain silloin, kun komentorivioptio -v on jätetty pois.) Thesl= (tai cx= jos rv) -ominaisuuden vaikutus pysyy aktiivisena, kun tämä otetaan käyttöön. Oletusarvo on lihavoitu punainen tekstin etuala nykyisen rivin taustan päällä.
mc=01;31
SGR-alasvetosarja ei-tyhjän tekstin täsmäyttämiseen kontekstirivillä. (Tätä käytetään vain, kun komentorivioptio -v on määritetty.)cx= (tai sl= jos rv) -ominaisuuden vaikutus pysyy aktiivisena, kun tämä otetaan käyttöön. Oletusarvo on lihavoitu punainen tekstin etuala nykyisen rivin taustan päällä.
fn=35
SGR-alasvetosarja tiedostonimille, jotka ovat minkä tahansa sisältörivin etuliitteenä. Oletusarvo on magentanpunainen tekstin etuala päätelaitteen oletustaustan päällä.
ln=32
SGR-alasana minkä tahansa sisältörivin edessä oleville rivinumeroille. Oletusarvo on vihreä tekstin etuala päätelaitteen oletustaustan päällä.
bn=32
SGR-merkkijono tavuoffsetille, jotka ovat minkä tahansa sisältörivin etuliitteenä. Oletusarvo on vihreä tekstin etuala päätelaitteen oletustaustan päällä.
se=36
SGR-osa merkkijono erottimille, jotka lisätään valittujen rivikenttien väliin (:), kontekstirivikenttien väliin (-) ja vierekkäisten rivien ryhmien väliin, kun nollasta poikkeava konteksti on määritetty (–). Oletusarvo on syaaninvärinen tekstin etuala päätelaitteen oletustaustan päällä.
ne
Boolean-arvo, joka estää rivin loppuun tyhjentämisen käyttämällä Erase in Line (EL) to Right (\33). LC_ALL, LC_CTYPE, LANG Nämä muuttujat määrittävät LC_CTYPE-luokan lokaalin, joka määrittää merkkien tyypin, esim. mitkä merkit ovat välilyöntejä. LC_ALL, LC_MESSAGES, LANG Nämä muuttujat määrittelevät LC_MESSAGES-luokan lokaalin, joka määrittää kielen, jota grep käyttää viesteissä. Oletuksena Clocale käyttää amerikanenglantilaisia viestejä. POSIXLY_CORRECT Jos se on asetettu, grep käyttäytyy POSIX.2:n edellyttämällä tavalla; muussa tapauksessa grep käyttäytyy enemmän kuin muut GNU-ohjelmat.POSIX.2 edellyttää, että tiedostojen nimiä seuraavia optioita on käsiteltävä tiedostojen niminä; oletusarvoisesti tällaiset optiot permutoidaanoperand-luettelon etupuolelle ja niitä käsitellään optioina. POSIX.2 vaatii myös, että tunnistamattomat optiot diagnosoidaan ”laittomiksi”, mutta koska ne eivät ole oikeastaan lainvastaisia, oletusarvo on diagnosoida ne ”virheellisiksi”. POSIXLY_CORRECT poistaa myös käytöstä _N_GNU_nonoption_argv_flags_,joka kuvataan jäljempänä. _N_GNU_nonoption_argv_flags_ (Tässä N on grepin numeerinen prosessin tunnus.) Jos tämän ympäristömuuttujan i:nnen merkin arvo on 1, grepin i:nnen operaattorin ei katsota olevan optio, vaikka se näyttäisi siltä. Komentotulkki voi laittaa tämän muuttujan ympäristöön jokaiselle suorittamalleen komennolle, jolloin se määrittää, mitkä operandit ovat tiedostonimen jokerimerkkilaajennuksen tuloksia, eikä niitä siksi pidä käsitellä optioina. Tämä käyttäytyminen on käytettävissä vain GNU C -kirjaston kanssa ja vain silloin, kun POSIXLY_CORRECT ei ole asetettu.
Lopetustila
Normaalisti lopetustila on 0, jos valitut rivit löytyvät, ja muuten 1. Poistumistila on kuitenkin 2, jos tapahtui virhe, ellei -q- tai–quiet- tai –silent-optiota käytetä ja valittua riviä löydy. Huomaa kuitenkin, että POSIX vaatii vain sellaisissa ohjelmissa kuin grep, cmp ja diff, että poistumistila virheen sattuessa on suurempi kuin 1. Siirrettävyyden vuoksi on siis suositeltavaa käyttää logiikkaa, joka testaa tämän yleisen ehdon sen sijaan, että käytettäisiin tiukkaa yhtäläisyyttä 2:n kanssa.
Tekijänoikeudet
Tekijänoikeudet 1998-2000, 2002, 2005-2010 Free Software Foundation, Inc.
Tämä on vapaata ohjelmistotietoa; kopiointiehdot löytyvät lähdekoodista. Ei ole mitään takuuta; ei edes KAUPALLISUUDESTA tai SOVELTUVUUDESTA ERITYISEEN TARKOITUKSEEN.
Virheitä
Virheiden ilmoittaminen
Lähetä sähköpostitse vikailmoitukset osoitteeseen <[email protected]>, postituslistalle, jonka www-sivut ovat <http://lists.gnu.org/mailman/listinfo/bug-grep>.grep’s Savannin vikaseuranta sijaitsee osoitteessa <http://savannah.gnu.org/bugs/?group=grep>.
Tunnetut viat
Suuret toistomäärät {n,m}-konstruktiossa saattavat aiheuttaa sen, että grep käyttää paljon muistia. Lisäksi tietyt otherobscure-säännölliset lausekkeet vaativat eksponentiaalisesti aikaa ja tilaa ja saattavat aiheuttaa grep:n muistin loppumisen.
Takaviittaukset ovat hyvin hitaita ja saattavat vaatia eksponentiaalisesti aikaa.
Katso myös
Säännölliset käsikirjan sivut
awk(1), cmp(1), diff(1), find(1), gzip(1), perl(1), sed(1), sort(1), xargs(1), zgrep(1), mmap(2), read(2), pcre(3), pcresyntax(3), pcrepattern(3),terminfo(5), glob(7), regex(7).
POSIX-ohjelmoijan käsikirja Sivu
grep(1p).
TeXinfo-dokumentaatio
Grepin täydellistä dokumentaatiota ylläpidetään TeXinfo-käsikirjana. Jos info- ja grep-ohjelmat on asennettu oikein paikallesi,komennolla info grep pitäisi päästä käsiksi koko käsikirjaan.
Huomautuksia
GNU ’ei ole Unix, mutta Unix on peto; sen monikkomuoto on Unixen.