Naam

grep, egrep, fgrep – print regels die overeenkomen met een patroon

Synopsis

grep PATTERN
grep

Omschrijving

grep doorzoekt de genoemde invoerBESTANDEN (of standaardinvoer als er geen bestanden zijn genoemd, of als een enkel koppelteken-minus (-) is gegeven als bestandsnaam) naar regels die een overeenkomst bevatten met de gegeven PATTERN. Standaard drukt grep de overeenkomende regels af.

Er zijn ook twee varianten beschikbaar, egrep en fgrep. egrep is hetzelfde als grep -E. fgrep is hetzelfde alsgrep -F. Directe aanroep als egrep of fgrep is verouderd, maar wordt gegeven om historische applicaties die hierop vertrouwen ongewijzigd te laten draaien.

Opties

Algemene programma-informatie

–help

Print een gebruiksbericht met een korte samenvatting van deze commandoregelopties en het adres voor het rapporteren van bugs, en verlaat dan.

-V, –version Print het versienummer van grep naar de standaarduitvoerstroom. Dit versienummer moet worden opgenomen in alle bugrapporten (zie hieronder).

Selectie van vectoren

-E, –extended-regexp Interpreteer PATTERN als een uitgebreide reguliere expressie (ERE, zie hieronder). (-E wordt door POSIX gespecificeerd.) -F, –fixed-strings Interpreteer PATTERN als een lijst van vaste strings, gescheiden door newlines, waarvan er één moet worden gematched. (-F wordt door POSIX gespecificeerd.) -G, –basic-regexp Interpreteer PATTERN als een basis reguliere expressie (BRE, zie hieronder). Dit is de standaardinstelling. -P, –perl-regexp Interpreteer PATTERN als een Perl reguliere expressie. Dit is zeer experimenteel en grep -P kan waarschuwen voor niet-geïmplementeerde functies.

Verzoeken Controle

-e PATTERN, –regexp=PATTERN Gebruik PATTERN als het patroon. Dit kan worden gebruikt om meerdere zoekpatronen te specificeren, of om een patroon te beschermen dat begint met een koppelteken (-).(-e wordt gespecificeerd door POSIX .) -f FILE, –file=FILE Verkrijg patronen uit FILE, één per regel. Het lege bestand bevat nul patronen, en komt dus met niets overeen. (-f wordt gespecificeerd doorPOSIX .) -i, –ignore-case Negeer hoofd- en kleine letters in zowel de PATTERN als de invoerbestanden. (-i wordt gespecificeerd door POSIX .) -v, –invert-match Keer de zin van het matchen om, om niet overeenkomende regels te selecteren. (-v is gespecificeerd door POSIX .) -w, –word-regexp Selecteer alleen die regels die overeenkomsten bevatten die hele woorden vormen. De test is dat de overeenkomende substring ofwel aan het begin van de lijn moet staan, of voorafgegaan moet worden door een niet-woordelijk constituent karakter. Op dezelfde manier moet het aan het eind van de regel staan of gevolgd worden door een niet-woordelijk bestandsteken. Woordelijke bestandstekens zijn letters, cijfers en de underscore. -x, –line-regexp Selecteer alleen de overeenkomsten die exact overeenkomen met de hele regel. (-x wordt gespecificeerd door POSIX .) -y

Verouderd synoniem voor -i.

Algemene uitvoercontrole

-c, –count Onderdruk de normale uitvoer; druk in plaats daarvan een telling van overeenkomende regels af voor elk invoerbestand. Met de -v, –invert-match optie (zie hieronder), tel je de niet-overeenkomende regels. (-c wordt gespecificeerd door POSIX .) –color, –colour Omring de gematchte (niet-lege) strings, overeenkomende regels, contextregels, bestandsnamen, regelnummers, byte-offsets, en scheidingstekens (voor velden en groepen vancontextregels) met escape-sequenties om ze in kleur op de terminal weer te geven. De kleuren worden gedefinieerd door de omgevingsvariabele GREP_COLORS. De verouderde omgevingsvariabele GREP_COLOR wordt nog steeds ondersteund, maar de instelling ervan heeft geen prioriteit. WANNEER is nooit, altijd, of automatisch. -L, –files-without-match Onderdruk normale uitvoer; druk in plaats daarvan de naam af van elk invoerbestand waarvan normaal geen uitvoer zou zijn afgedrukt. Het scannen stopt bij de eerste overeenkomst. -l, –bestanden-met-matches Onderdruk de normale uitvoer; druk in plaats daarvan de naam af van elk invoerbestand waarvan normaal gesproken uitvoer zou worden afgedrukt. Het scannen stopt bij de eerste overeenkomst. (-l wordt gespecificeerd door POSIX .) -m NUM, –max-count=NUM Stop met het lezen van een bestand na NUM overeenkomende regels. Als de invoer standaardinvoer is van een regelmatig bestand, en er worden NUM overeenkomende regels uitgevoerd, dan zorgt grep ervoor dat de standaardinvoer wordt gepositioneerd tot net na de laatste overeenkomende regel voordat het afsluit, ongeacht de aanwezigheid van achterliggende contextregels. Dit stelt een aanroepend proces in staat om een zoekactie te hervatten. Wanneer grep stopt na NUM overeenkomende regels, voert het alle achterliggende contextregels uit. Wanneer ook de optie -c of –count wordt gebruikt, voert grep geen telling groter dan NUM uit. Wanneer de -v of –invert-match optie ook wordt gebruikt, stopt grep na het uitvoeren van NUM niet-matchende regels. -o, –only-matching Druk alleen de gematchte (niet-lege) delen van een overeenkomende regel af, met elk zo’n deel op een aparte uitvoerregel. -q, –quiet, –stil Stil; schrijf niets naar de standaarduitvoer. Verlaat het programma onmiddellijk met de status nul als er een overeenkomst wordt gevonden, zelfs als er een fout werd ontdekt. Zie ook de optie-s of –no-messages. (-q wordt gespecificeerd door POSIX .) -s, –no-messages Onderdruk foutmeldingen over niet-bestaande of onleesbare bestanden. Opmerking over overdraagbaarheid: in tegenstelling tot GNU grep, voldeed 7th Edition Unix grep niet aan POSIX, omdat -q ontbrak en de -s optie zich gedroeg als GNU grep’s -q optie.USG -style grep had ook geen -q maar de -s optie gedroeg zich als GNU grep. Portable shell scripts zouden zowel -q als -s moeten vermijden en in plaats daarvan standaard en foutuitvoer moeten omleiden naar /dev/null. (-s wordt gespecificeerd door POSIX.)

Output Line Prefix Control

-b, –byte-offset Druk de op 0 gebaseerde byte-offset af binnen het invoerbestand voor elke uitvoerregel. Als -o (–only-matching) is opgegeven, wordt de offset van het overeenkomende gedeelte zelf afgedrukt. -H, –met-filename Druk de bestandsnaam af voor elke overeenkomst. Dit is de standaardinstelling als er meer dan één bestand is om te zoeken. -h, –no-filename Onderdruk het voorvoegsel van bestandsnamen op de uitvoer. Dit is de standaardinstelling wanneer er slechts in één bestand (of alleen standaardinvoer) moet worden gezocht. –label=LABEL Geef input afkomstig van de standaard input weer als input afkomstig van het bestand LABEL. Dit is vooral nuttig bij het implementeren van tools zoalszgrep, b.v., gzip -cd foo.gz | grep –label=foo -H iets. Zie ook de -H optie. -n, –lijn-nummer Voorvoeg elke uitvoerregel met het op 1 gebaseerde lijnnummer binnen zijn invoerbestand. (-n wordt gespecificeerd door POSIX .) -T, –initial-tab Zorg ervoor dat het eerste karakter van de eigenlijke lijninhoud op een tab-stop ligt, zodat de uitlijning van tabs er normaal uitziet. Dit is nuttig bij opties die hun uitvoer koppelen aan de eigenlijke inhoud: -H,-n, en -b. Om de kans te vergroten dat regels uit een enkel bestand allemaal in dezelfde kolom beginnen, zorgt dit er ook voor dat het regelnummer en de byte-offset (indien aanwezig) worden afgedrukt in een veld van minimale breedte. -u, –unix-byte-offsets Rapporteert byte-offsets in Unix-stijl. Deze schakeloptie zorgt ervoor dat grep byte-offsets rapporteert alsof het bestand een tekstbestand in Unix-stijl is, dat wil zeggen, met CR-karakters weggelaten. Dit zal identieke resultaten geven als wanneer grep op een Unix machine wordt uitgevoerd. Deze optie heeft geen effect tenzij de optie -b ook wordt gebruikt; deze optie heeft geen effect op andere platformen dan MS-DOS en MS-Windows. -Z, –null Voer een byte van nul uit (het ASCII NUL teken) in plaats van het teken dat normaal gesproken volgt op een bestandsnaam. Bijvoorbeeld, grep -lZoutvoert een nul byte na elke bestandsnaam in plaats van de gebruikelijke newline. Deze optie maakt de uitvoer ondubbelzinnig, zelfs in de aanwezigheid van bestandsnamen die ongebruikelijke tekens zoals newlines bevatten. Deze optie kan worden gebruikt met commando’s als find -print0, perl -0, sort -z, en xargs -0 om willekeurige bestandsnamen te verwerken, zelfs als die newline-tekens bevatten.

Context Line Control

-A NUM, –after-context=NUM Druk NUM regels af met achterliggende context na overeenkomende regels. Plaatst een regel met een groepscheidingsteken (–) tussen aaneengesloten groepen overeenkomsten. Met de -o of –alleen-matches optie, heeft dit geen effect en wordt er een waarschuwing gegeven. -B NUM, –before-context=NUM Print NUM regels van voorlopende context vóór overeenkomende regels. Plaatst een regel met een groepscheidingsteken (–) tussen aaneengesloten groepen overeenkomsten. Met de -o of –alleen-matches optie, heeft dit geen effect en wordt er een waarschuwing gegeven. -C NUM, -NUM, –context=NUM Druk NUM regels van uitvoercontext af. Plaatst een regel met een groepscheidingsteken (–) tussen aaneengesloten groepen overeenkomsten. Met de -o of–alleen-matching optie, heeft dit geen effect en wordt er een waarschuwing gegeven.

Selectie van bestanden en mappen

-a, –text Verwerk een binair bestand alsof het tekst is; dit is gelijkwaardig aan de optie –binary-files=text. –binary-files=TYPE Als de eerste paar bytes van een bestand aangeven dat het bestand binaire gegevens bevat, dan wordt aangenomen dat het bestand van het type TYPE is. Standaard is TYPE binair, en normaal gesproken geeft grep ofwel een bericht van één regel dat een binair bestand overeenkomt, of geen bericht als er geen overeenkomst is. Als TYPE zonder-match is, neemt grep aan dat een binair bestand niet overeenkomt; dit is gelijk aan de -I optie. Als TYPE tekst is, verwerkt grep een binair bestand alsof het tekst is; dit is gelijk aan de optie -a. Waarschuwing: grep –binary-files=text kan binaire rommel uitvoeren, wat vervelende neveneffecten kan hebben als de uitvoer een terminal is en als de terminal driver sommige ervan interpreteert als commando’s. -D ACTION, –devices=ACTION Als een invoerbestand een apparaat, FIFO of socket is, gebruik dan ACTION om het te verwerken. Standaard staat ACTION op lezen, wat betekent dat apparaten worden gelezen alsof het gewone bestanden zijn. Als ACTION op skip staat, worden apparaten stilletjes overgeslagen. -d ACTION, –directories=ACTION Als een invoerbestand een directory is, gebruik dan ACTION om het te verwerken. Standaard staat ACTION op lezen, wat betekent dat directories worden gelezen alsof het gewone bestanden zijn. Als ACTION skip is, worden mappen stilzwijgend overgeslagen. Als ACTION recurse is, leest grep recursief alle bestanden onder elke directory; dit is gelijk aan de -r optie. –exclude=GLOB Sla bestanden over waarvan de basisnaam overeenkomt met GLOB (met behulp van jokertekens). Een bestandsnaam glob kan *, ?, en als jokertekens gebruiken, en om een jokerteken of backslash karakter letterlijk aan te halen. –exclude-from=FILE Sla bestanden over waarvan de basisnaam overeenkomt met een van de bestandsnaam globbs gelezen van FILE (met behulp van jokertekens zoals beschreven onder –exclude). –exclude-dir=DIR Sluit mappen die overeenkomen met het patroon DIR uit van recursieve zoekopdrachten. -I

Verwerk een binair bestand alsof het geen overeenkomende gegevens bevat; dit is gelijkwaardig aan de optie –binary-files=without-match.

–include=GLOB Zoek alleen bestanden waarvan de basisnaam overeenkomt met GLOB (met behulp van jokertekens zoals beschreven onder –exclude). -R, -r, –recursive Lees alle bestanden onder elke directory, recursief; dit is equivalent aan de -d recurse optie.

Andere opties

–line-buffered Gebruik regelbuffering op uitvoer. Dit kan een prestatieverlies veroorzaken. –mmap

Gebruik, indien mogelijk, de mmap(2) system call om invoer te lezen, in plaats van de standaard read(2) system call. In sommige situaties levert –mmap een betere prestatie op. Echter, –mmap kan leiden tot ongedefinieerd gedrag (inclusief core dumps) als een invoerbestand krimpt terwijl grep actief is, of als er een I/O-fout optreedt.

-U, –binary Behandel het bestand (en) als binair. Standaard, onder MS-DOS en MS-Windows, raadt grep het bestandstype door te kijken naar de inhoud van de eerste 32KB gelezen van het bestand. Als grep besluit dat het bestand een tekstbestand is, verwijdert het de CR-karakters uit de originele bestandsinhoud (zodat reguliere expressies met ^ en $ correct werken). Het specificeren van -U heft dit giswerk op, waardoor alle bestanden worden gelezen en letterlijk worden doorgegeven aan het matching-mechanisme; als het bestand een tekstbestand is met CR/LF-paren aan het eind van elke regel, zal dit ervoor zorgen dat sommige reguliere expressies mislukken. Deze optie heeft geen effect op andere platformen dan MS-DOS en MS-Windows. -z, –null-data Behandelt de invoer als een reeks regels, elk afgesloten door een nul byte (het ASCII NUL teken) in plaats van een newline. Net als de -Zof –null optie, kan deze optie gebruikt worden met commando’s als sort -z om willekeurige bestandsnamen te verwerken.

Reguliere Expressies

Een reguliere expressie is een patroon dat een verzameling tekenreeksen beschrijft. Reguliere expressies worden analoog aan rekenkundige expressies geconstrueerd, door verschillende operatoren te gebruiken om kleinere expressies te combineren.

grep begrijpt drie verschillende versies van de reguliere expressie syntaxis: “basic”, “extended” en “perl”. In GNU grep is er geen verschil in beschikbare functionaliteit tussen de basis en de uitgebreide syntaxis. In andere implementaties zijn basic reguliere expressies minder krachtig. De volgende beschrijving is van toepassing op uitgebreide reguliere uitdrukkingen; verschillen voor basis reguliere uitdrukkingen worden daarna samengevat. Perl reguliere uitdrukkingen geven extra functionaliteit, en zijn gedocumenteerd in pcresyntax(3) en pcrepattern(3), maar zijn mogelijk niet op elk systeem beschikbaar.

De fundamentele bouwstenen zijn de reguliere uitdrukkingen die overeenkomen met een enkel karakter. De meeste tekens, inclusief alle letters en cijfers, zijn reguliere expressies die met zichzelf overeenkomen. Elk meta-karakter met een speciale betekenis kan worden gequote door het vooraf te laten gaan door een backslash.

De punt . komt overeen met elk enkel karakter.

Karakter Klassen en Haakjes Uitdrukkingen

Een haakjes uitdrukking is een lijst van karakters omsloten door . Het komt overeen met elk enkel teken in die lijst; als het eerste teken van de lijst het caret ^ is, komt het overeen met elk teken dat niet in de lijst staat. De reguliere uitdrukking komt bijvoorbeeld overeen met elk cijfer.

Binnen een haakjesuitdrukking bestaat een bereikuitdrukking uit twee tekens gescheiden door een koppelteken. Deze komt overeen met elk afzonderlijk teken dat sorteert tussen de twee tekens, inclusief, met behulp van de collatievolgorde en tekenset van de locale. In de standaard C-taal is dit bijvoorbeeld gelijk aan. Veel locales sorteren karakters in dictionary-volgorde, en in deze locales is typisch niet equivalent met ; het zou bijvoorbeeld equivalent kunnen zijn met . Om de traditionele interpretatie van haakjesexpressies te verkrijgen, kunt u de C locale gebruiken door deLC_ALL omgevingsvariabele in te stellen op de waarde C.

Ten slotte zijn bepaalde genaamde klassen van tekens vooraf gedefinieerd binnen haakjesexpressies, zoals hieronder. Hun namen spreken voor zich, en zijn, , , , , , , , , en . Bijvoorbeeld, ] betekent , behalve dat de laatste vorm afhankelijk is van de locale en de ASCII tekencodering, terwijl de eerste onafhankelijk is van locale en tekenset. (Merk op dat de haakjes in deze classnamen deel uitmaken van de symbolische namen, en moeten worden opgenomen naast de haakjes die de haakjesuitdrukking begrenzen). De meeste meta-karakters verliezen hun speciale betekenis binnen bracket expressies. Om een letterlijke ] op te nemen, plaats deze eerst in de lijst. Op dezelfde manier, om een letterlijke ^ op te nemen, plaats het overal behalve eerst. Tenslotte, om een letterlijke – op te nemen, plaats het als laatste.

Anchoring

De caret ^ en het dollarteken $ zijn meta-tekens die respectievelijk overeenkomen met de lege string aan het begin en einde van een regel.

Het backslash teken en speciale uitdrukkingen

De symbolen ^< en ^> komen respectievelijk overeen met de lege tekenreeks aan het begin en aan het eind van een woord. Het symbool \b komt overeen met de lege tekenreeks aan de rand van een woord, en \B komt overeen met de lege tekenreeks mits deze niet aan de rand van een woord staat. Het symbool \w is een synoniem voor] en \W is een synoniem voor ].

Herhaling

Een reguliere uitdrukking kan worden gevolgd door een van de diverse herhalingsoperatoren:

Het voorgaande item is optioneel en wordt maximaal eenmaal gematched.

*

Het voorgaande item wordt nul of meer keer gematched.

+

Het voorgaande item wordt één of meer keer gematched.

{n}

Het voorgaande item wordt precies n keer gematched.

{n,}

Het voorgaande item wordt n of meer keer gematched.

{,m}

Het voorgaande item wordt maximaal m keer gevonden.

{n,m}

Het voorgaande item wordt minstens n keer, maar niet meer dan m keer gevonden.

Concatenatie

Twee reguliere uitdrukkingen mogen aan elkaar worden gekoppeld; de resulterende reguliere uitdrukking komt overeen met elke string die wordt gevormd door twee substrings aan elkaar te koppelen die respectievelijk overeenkomen met de aan elkaar gekoppelde uitdrukkingen.

Wisselwoord

Twee reguliere uitdrukkingen kunnen worden samengevoegd door de infix operator |; de resulterende reguliere uitdrukking komt overeen met elke tekenreeks die overeenkomt met een van beide wisselexpressies.

Voorrang

Herhaling heeft voorrang op aaneenschakeling, die op haar beurt voorrang heeft op alternatie. Een hele uitdrukking kan tussen haakjes worden geplaatst om deze voorrangsregels op te heffen en een subexpressie te vormen.

Terugverwijzingen en subexpressies

De terugverwijzing \n, waarbij n een enkel cijfer is, komt overeen met de substring die eerder overeenkwam met de n-de parenthesizedubexpressie van de reguliere uitdrukking.

Basis vs. Uitgebreide reguliere uitdrukkingen

In basis reguliere uitdrukkingen verliezen de meta-karakters ?, +, {, |, (, en ) hun speciale betekenis; in plaats daarvan gebruikt u de back-lashed versies \?, \+, \{, \|, \(, en \).

Traditionele egrep ondersteunde het { meta-karakter niet, en sommige egrep implementaties ondersteunen in plaats daarvan {, dus portable scripts zouden { in grep -E patronen moeten vermijden en moeten gebruiken om te matchen met een letterlijk {.

GNU grep -E probeert het traditionele gebruik te ondersteunen door aan te nemen dat { niet speciaal is als het het begin zou zijn van een ongeldige interval specificatie. Bijvoorbeeld, het commando grep -E ‘{1’ zoekt naar de tekenreeks van twee karakters {1 in plaats van een syntaxisfout te rapporteren in de gewone expressie. POSIX.2 staat dit gedrag toe als een uitbreiding, maar portable scripts zouden het moeten vermijden.

Omgevingsvariabelen

Het gedrag van grep wordt beïnvloed door de volgende omgevingsvariabelen.

De locale voor categorie LC_foo wordt gespecificeerd door de drie omgevingsvariabelen LC_ALL, LC_foo, LANG, in die volgorde te bekijken. De eerste van deze variabelen die is ingesteld specificeert de locale. Bijvoorbeeld, als LC_ALL niet is ingesteld, maar LC_MESSAGES is ingesteld op_BR, dan wordt de Braziliaans Portugese locale gebruikt voor de LC_MESSAGES categorie. De C locale wordt gebruikt als geen van deze omgevingsvariabelen is ingesteld, als de locale catalogus niet is geïnstalleerd, of als grep niet is gecompileerd met nationale taalondersteuning ( NLS ).

GREP_OPTIONS Deze variabele specificeert standaard opties die voor expliciete opties moeten worden geplaatst. Bijvoorbeeld, als GREP_OPTIONS is’–binary-files=without-match –directories=skip’, gedraagt grep zich alsof de twee opties –binary-files=without-match en–directories=skip zijn gespecificeerd vóór expliciete opties. Optiespecificaties worden gescheiden door witruimte. Een backslash escaped het volgende teken, dus kan het gebruikt worden om een optie aan te geven die whitespace of een backslash bevat. GREP_COLOR Deze variabele specificeert de kleur die wordt gebruikt om gematchte (niet-lege) tekst te markeren. Deze variabele is verouderd ten gunste van GREP_COLORS, maar wordt nog steeds ondersteund. Themt, ms, en mc mogelijkheden van GREP_COLORS hebben voorrang op deze variabele. Het kan alleen de kleur specificeren die wordt gebruikt om de overeenkomende niet-lege tekst in een overeenkomende regel te markeren (een geselecteerde regel wanneer de -v commandoregeloptie is weggelaten, of een contextregel wanneer -v is gespecificeerd). De standaardinstelling is 01;31, wat een vetgedrukte rode voorgrondtekst betekent op de standaard achtergrond van de terminal. GREP_COLORS Specificeert de kleuren en andere attributen die worden gebruikt om verschillende delen van de uitvoer te markeren. De waarde is een door dubbele punten gescheiden lijst van mogelijkheden die standaard ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36 is met de booleaanse mogelijkheden rv en ne weggelaten (d.w.z., vals). De ondersteunde mogelijkheden zijn als volgt. sl=

SGR substring voor gehele geselecteerde lijnen (d.w.z. overeenkomende lijnen wanneer de -v commandoregeloptie is weggelaten, of niet-overeenkomende lijnen wanneer -v is gespecificeerd). Als echter het booleaanse rv vermogen en de -v commando-regel optie beide zijn gespecificeerd, geldt het in plaats daarvan voor context overeenkomende lijnen.De standaardwaarde is leeg (d.w.z., het standaard kleurenpaar van de terminal).

cx=

SGR substring voor hele context lijnen (d.w.z., niet overeenkomende lijnen wanneer de -v commando-regel optie is weggelaten, of overeenkomende lijnen wanneer -v is gespecificeerd). Als echter de booleaanse rv mogelijkheid en de -v commandoregel optie beide zijn gespecificeerd, geldt het in plaats daarvan voor geselecteerde niet overeenkomende lijnen. De standaardwaarde is leeg (d.w.z. het standaard kleurenpaar van de terminal).

rv

Booleaanse waarde die de betekenissen van de mogelijkheden sl= en cx= omkeert (verwisselt) wanneer de -v commando-regel optie is gespecificeerd. De standaardwaarde is false (d.w.z., de mogelijkheid wordt weggelaten).

mt=01;31

SGR substring voor overeenkomende niet-lege tekst in elke overeenkomende regel (d.w.z., een geselecteerde regel wanneer de -v command-line optie is weggelaten, of een context regel wanneer -v is gespecificeerd). Dit instellen is gelijk aan het gelijktijdig instellen van ms= en mc= op dezelfde waarde. De standaardwaarde is een vetgedrukte rode tekstvoorgrond over de huidige regelachtergrond.

ms=01;31

SGR substring voor overeenkomende niet-lege tekst in een geselecteerde regel. (Dit wordt alleen gebruikt wanneer de -v command-line optie is weggelaten.) Het effect van desl= (of cx= indien rv) mogelijkheid blijft actief wanneer dit wordt ingeschakeld. De standaardinstelling is een vetgedrukte rode tekstvoorgrond over de huidige regelachtergrond.

mc=01;31

SGR substring voor het matchen van niet-lege tekst in een contextregel. (Dit wordt alleen gebruikt wanneer de -v command-line optie is opgegeven.) Het effect van decx= (of sl= indien rv) mogelijkheid blijft actief wanneer dit wordt ingeschakeld. De standaardinstelling is een vette rode tekst voorgrond over de huidige lijnachtergrond.

fn=35

SGR voorloopstreep voor bestandsnamen die elke inhoudsregel voorafgaan. De standaard instelling is een magenta voorgrondtekst over de standaard achtergrond van de terminal.

ln=32

SGR voorvoegsel voor regelnummers die een regel voor de inhoud voorafgaan. De standaardinstelling is een groene voorgrondtekst over de standaardachtergrond van de terminal.

bn=32

SGR-subring voor byte-offsets die elke inhoudsregel voorafgaan. De standaardinstelling is een groene tekst voorgrond over de standaard achtergrond van de terminal.

se=36

SGR-subring voor scheidingstekens die worden ingevoegd tussen geselecteerde regelvelden (:), tussen context regelvelden, (-), en tussen groepen van aangrenzende regels wanneer niet-nul context is gespecificeerd (–). De standaardinstelling is een cyaan tekst voorgrond over de standaard achtergrond van de terminal.

ne

Boolean waarde die het wissen tot het einde van de regel voorkomt met Erase in Line (EL) to Right (\33. LC_ALL, LC_CTYPE, LANG Deze variabelen geven de locale aan voor de LC_CTYPE categorie, die het type van tekens bepaalt, b.v. welke tekens spaties zijn. LC_ALL, LC_MESSAGES, LANG Deze variabelen specificeren de locale voor de LC_MESSAGES categorie, die de taal bepaalt die grep gebruikt voor berichten. De standaard locale gebruikt Amerikaans Engelse berichten. POSIXLY_CORRECT Indien ingesteld, gedraagt grep zich zoals POSIX.2 vereist; anders gedraagt grep zich meer als andere GNU programma’s. POSIX.2 vereist dat opties die volgen op bestandsnamen behandeld moeten worden als bestandsnamen; standaard worden zulke opties gepermuteerd naar de voorkant van de operand lijst en worden behandeld als opties. POSIX.2 vereist ook dat niet-herkende opties worden gediagnosticeerd als “illegaal”, maar omdat ze niet echt tegen de wet zijn, is de standaardinstelling ze te diagnosticeren als “ongeldig”. POSIXLY_CORRECT schakelt ook _N_GNU_nonoption_argv_flags_ uit, hieronder beschreven. _N_GNU_nonoption_argv_flags_ (Hier is N de numerieke proces-ID van grep.) Als het i-de karakter van de waarde van deze omgevingsvariabele 1 is, beschouw dan de i-de operand van grep niet als een optie, zelfs als het er een lijkt te zijn. Een shell kan deze variabele in de omgeving zetten voor elk commando dat hij uitvoert, om aan te geven welke operanden het resultaat zijn van wildcard-expansie van bestandsnamen en daarom niet als opties moeten worden behandeld. Dit gedrag is alleen beschikbaar met de GNU C bibliotheek, en alleen wanneer POSIXLY_CORRECT niet is ingesteld.

Exit Status

Normaal is de exit status 0 als geselecteerde regels worden gevonden en 1 anders. Maar de exit status is 2 als er een fout is opgetreden, tenzij de -q of–stil of –stil optie is gebruikt en er een geselecteerde regel is gevonden. Merk echter op dat POSIX alleen voor programma’s alsgrep, cmp en diff voorschrijft dat de exit-status in geval van een fout groter dan 1 moet zijn; het is daarom aan te raden om, omwille van de portabiliteit, logica te gebruiken die op deze algemene voorwaarde test in plaats van strikte gelijkheid met 2.

Copyright

Copyright 1998-2000, 2002, 2005-2010 Free Software Foundation, Inc.

Dit is vrije software; zie de broncode voor de voorwaarden voor het kopiëren. Er is geen garantie; zelfs niet voor VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD DOEL.

Bugs

Bugs rapporteren

Email bug rapporten naar <[email protected]>, een mailing lijst waarvan de web pagina <http://lists.gnu.org/mailman/listinfo/bug-grep>.grep’s is.<http://savannah.gnu.org/bugs/?group=grep&gt De bug tracker van Savannah is te vinden op <http://savannah.gnu.org/bugs/?group=grep>.

Bekende bugs

Grote aantallen herhalingen in de {n,m} constructie kunnen ervoor zorgen dat grep veel geheugen gebruikt. Bovendien hebben bepaalde reguliere expressies met een andere code exponentieel veel tijd en ruimte nodig, waardoor grep geheugen tekort kan komen.

Terugverwijzingen zijn erg traag, en kunnen exponentieel veel tijd in beslag nemen.

Zie ook

Reguliere handleidingen

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 Programmer’s Manual Page

grep(1p).

TeXinfo Documentatie

De volledige documentatie voor grep wordt bijgehouden als een TeXinfo handleiding. Als de programma’s info en grep goed geïnstalleerd zijn op uw site, zou het commando info grep u toegang moeten geven tot de volledige handleiding.

Noten

GNU ‘is niet Unix, maar Unix is een beest; de meervoudsvorm is Unixen.

admin

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.

lg