Name
grep, egrep, fgrep – print lines matching a pattern
Synopsis
grep PATTERN
grep
Description
grep caută în FILELE de intrare numite (sau în intrarea standard dacă nu sunt numite fișiere, sau dacă se dă ca nume de fișier o singură cratimă-minus (-))pentru liniile care conțin o potrivire cu PATTERNUL dat. În mod implicit, grep tipărește liniile care corespund.
În plus, sunt disponibile două programe variante: egrep și fgrep. egrep este același lucru ca și grep -E. fgrep este același lucru ca și grep -F. Invocarea directă ca egrep sau fgrep este depreciată, dar este furnizată pentru a permite aplicațiilor istorice care se bazează pe ele să se deruleze nemodificate.
Opțiuni
Informații generale despre program
–help
Imprimă un mesaj de utilizare care rezumă pe scurt aceste opțiuni ale liniei de comandă și adresa de raportare a erorilor, apoi iese.
-V, –version Imprimă numărul versiunii lui grep pe fluxul de ieșire standard. Acest număr de versiune trebuie să fie inclus în toate rapoartele de erori (a se vedea mai jos).
Selecția Matcher
-E, –extended-regexp Interpretați PATTERN ca o expresie regulată extinsă (ERE, vezi mai jos). (-E este specificat de POSIX .) -F, –fixed-strings Interpretează PATTERN ca o listă de șiruri de caractere fixe, separate prin linii noi, oricare dintre acestea urmând să se potrivească. (-F este specificat de POSIX.) -G, –basic-regexp Interpretează PATTERN ca o expresie regulată de bază (BRE, a se vedea mai jos). Aceasta este valoarea implicită. -P, –perl-regexp Interpretează PATTERN ca o expresie regulată Perl. Acest lucru este foarte experimental și grep -P poate avertiza cu privire la caracteristicile neimplementate.
Control de potrivire
-e PATTERN, –regexp=PATTERN Utilizați PATTERN ca model. Acesta poate fi utilizat pentru a specifica mai multe modele de căutare sau pentru a proteja un model care începe cu o cratimă (-). (-e este specificat de POSIX .) -f FILE, –file=FILE Obține modele din FILE, unul pe linie. Fișierul gol conține zero modele și, prin urmare, nu se potrivește cu nimic. (-f este specificat de POSIX .) -i, –ignore-case Ignoră diferențele dintre majuscule și minuscule atât în PATTERN, cât și în fișierele de intrare. (-i este specificat de POSIX .) -v, –invert-match Inversează sensul de potrivire, pentru a selecta liniile care nu corespund. (-v este specificat de POSIX .) -w, –word-regexp Selectează numai acele linii care conțin potriviri care formează cuvinte întregi. Testul constă în faptul că subșirul care se potrivește trebuie să fie la începutul liniei sau să fie precedat de un caracter constitutiv care nu este un cuvânt. În mod similar, trebuie să se afle fie la sfârșitul liniei, fie să fie urmată de un caracter constitutiv care nu este un cuvânt.Caracterele constitutive ale cuvintelor sunt litere, cifre și caracterele de subliniere. -x, –line-regexp Selectează numai acele corespondențe care corespund exact întregii linii. (-x este specificat de POSIX .) -y
Sinonim învechit pentru -i.
Control general al ieșirii
-c, –count Suprimă ieșirea normală; în schimb, tipărește o numărătoare a liniilor corespunzătoare pentru fiecare fișier de intrare. Cu opțiunea -v, –invert-match (a se vedea mai jos), numără liniile care nu corespund. (-c este specificat de POSIX .) –color, –colour Întoarceți șirurile de caractere potrivite (necompletate), liniile potrivite, liniile de context, numele fișierelor, numerele de linie, decalajele de octeți și separatorii (pentru câmpuri și grupuri de linii de context) cu secvențe de scăpare pentru a le afișa în culori pe terminal. Culorile sunt definite de variabila de mediu GREP_COLORS. Variabila de mediu depășită GREP_COLOR este încă acceptată, dar setarea sa nu are prioritate. WHEN este never (niciodată), always (întotdeauna) sauauto (automat). -L, –files-without-match Suprimă ieșirea normală; în schimb, tipărește numele fiecărui fișier de intrare din care, în mod normal, nu s-ar fi tipărit nicio ieșire. Scanarea se va opri la prima potrivire. -l, –files-with-match Suprimă ieș irea normală; în schimb, tipărește numele fiecărui fișier de intrare din care, în mod normal, s-ar fi tipărit ieșirea. Scanarea se va opri la prima potrivire. (-l este specificat de POSIX .) -m NUM, –max-count=NUM Oprește citirea unui fișier după NUM de linii corespunzătoare. În cazul în care intrarea este o intrare standard dintr-un fișier obișnuit, iar NUM de linii care corespund sunt ieșite, grep se asigură că intrarea standard este poziționată imediat după ultima linie care corespunde înainte de a ieși, indiferent de prezența unor linii de context la sfârșit. Acest lucru permite unui proces de apelare să reia o căutare. Atunci când grep se oprește după NUM de linii de corespondență, acesta scoate orice linii de context care urmează. În cazul în care se utilizează și opțiunea -c sau –count, grep nu emite un număr mai mare decât NUM. În cazul în care se utilizează și opțiunea -v sau –invert-match, grep se oprește după ce scoate NUM linii care nu corespund. -o, –only-matching Tipărește numai părțile potrivite (nevide) ale unei linii potrivite, fiecare parte fiind pe o linie de ieșire separată. -q, –quiet, –silent Liniște; nu scrie nimic pe ieșirea standard. Iese imediat cu starea zero dacă se găsește vreo potrivire, chiar dacă a fost detectată o eroare. A se vedea, de asemenea, opțiunea-s sau –no-messages. (-q este specificat de POSIX .) -s, –no-messages Elimină mesajele de eroare despre fișiere inexistente sau imposibil de citit. Notă privind portabilitatea: spre deosebire de GNU grep, ediția a 7-a Unix grep nu era conformă cu POSIX , deoarece nu avea opțiunea -q, iar opțiunea -s se comporta ca opțiunea -q a lui GNU grep.USG -style grep, de asemenea, nu avea -q, dar opțiunea -s se comporta ca GNU grep. Scripturile shell portabile ar trebui să evite atât -q, cât și -s și ar trebui să redirecționeze în schimb ieșirea standard și de eroare către /dev/null. (-s este specificat de POSIX.)
Controlul prefixului liniei de ieșire
-b, –byte-offset Imprimă decalajul de octeți bazat pe 0 în fișierul de intrare înainte de fiecare linie de ieșire. Dacă este specificat -o (–only-matching), tipărește offset-ul părții de potrivire în sine. -H, –with-filename Imprimă numele fișierului pentru fiecare potrivire. Aceasta este valoarea implicită atunci când există mai mult de un fișier de căutat. -h, –no-filename Suprimă prefixarea numelor de fișiere la ieșire. Aceasta este opțiunea implicită atunci când există un singur fișier (sau doar intrarea standard) de căutat. –label=LABEL Afișează intrările care provin de fapt de la intrarea standard ca intrări provenite din fișierul LABEL. Acest lucru este deosebit de util atunci când se implementează instrumente precumzgrep, de exemplu, gzip -cd foo.gz | grep –label=foo -H ceva. A se vedea, de asemenea, opțiunea -H. -n, –line-number Prefixează fiecare linie de ieșire cu numărul de linie bazat pe 1 din fișierul de intrare. (-n este specificat de POSIX .) -T, –initial-tab Asigurați-vă că primul caracter al conținutului real al liniei se află pe o oprire de tabulare, astfel încât alinierea tabulațiilor să aibă un aspect normal. Acest lucru este util în cazul opțiunilor care își fixează ieșirea pe conținutul real: -H, -n și -b. Pentru a îmbunătăți probabilitatea ca liniile dintr-un singur fișier să înceapă toate la aceeași coloană, acest lucru face, de asemenea, ca numărul liniei și decalajul de octeți (dacă este prezent) să fie tipărite într-o lățime de câmp de dimensiune minimă. -u, –unix-byte-offsets Raportează decalajele de octeți în stil Unix. Acest comutator face ca grep să raporteze decalajele de octeți ca și cum fișierul ar fi un fișier text în stil Unix, adică cu caracterele CR tăiate. Acest lucru va produce rezultate identice cu rularea grep pe o mașină Unix. Această opțiune nu are efect decât dacă se utilizează și opțiunea -b; nu are efect pe alte platforme decât MS-DOS și MS -Windows. -Z, –null Emite un octet zero (caracterul ASCII NUL) în locul caracterului care urmează în mod normal după un nume de fișier. De exemplu, grep -lZ scoate un octet zero după fiecare nume de fișier în loc de linia nouă obișnuită. Această opțiune face ca ieșirea să fie lipsită de ambiguitate, chiar și în prezența unor nume de fișiere care conțin caractere neobișnuite, cum ar fi liniile noi. Această opțiune poate fi utilizată cu comenzi precum find -print0, perl -0, sort -z și xargs -0 pentru a procesa nume de fișiere arbitrare, chiar și pe cele care conțin caractere newline.
Controlul liniilor de context
-A NUM, –after-context=NUM Tipărește NUM linii de context de urmă după liniile corespunzătoare. Plasează o linie care conține un separator de grup (–) între grupurile contigue de potriviri. Cu opțiunea -o sau –only-matching, acest lucru nu are niciun efect și se dă un avertisment. -B NUM, –before-context=NUM Tipărește NUM linii de context înainte de liniile corespunzătoare. Plasează o linie care conține un separator de grup (–) între grupurile contigue de corespondențe. Cu opțiunea -o sau –only-matching, acest lucru nu are niciun efect și se emite un avertisment. -C NUM, -NUM, –context=NUM Tipărește NUM linii de context de ieșire. Plasează o linie care conține un separator de grup (–) între grupurile contigue de corespondențe. Cu opțiunea -o sau –only-matching, acest lucru nu are niciun efect și se emite un avertisment.
Selecția fișierelor și directoarelor
-a, –text Prelucrează un fișier binar ca și cum ar fi text; aceasta este echivalentă cu opțiunea –binary-files=text. –binary-files=TYPE Dacă primii câțiva octeți ai unui fișier indică faptul că fișierul conține date binare, se presupune că fișierul este de tip TYPE. În mod implicit, TYPE este binar, iar grep emite în mod normal fie un mesaj de o linie care indică faptul că un fișier binar se potrivește, fie niciun mesaj dacă nu există nicio potrivire. Dacă TYPEeste fără corespondență, grep presupune că un fișier binar nu se potrivește; acest lucru este echivalent cu opțiunea -I. Dacă TYPE este text,grep procesează un fișier binar ca și cum ar fi text; acest lucru este echivalent cu opțiunea -a. Avertisment: grep –binary-files=text poate emite gunoaie binare, ceea ce poate avea efecte secundare neplăcute dacă ieșirea este un terminal și dacă driverul terminalului interpretează o parte din ele ca fiind comenzi. -D ACTION, –devices=ACTION În cazul în care un fișier de intrare este un dispozitiv, FIFO sau socket, utilizați ACTION pentru a-l procesa. În mod implicit, ACTION este read, ceea ce înseamnă că dispozitivele sunt citite ca și cum ar fi fișiere obișnuite. Dacă ACTION este skip, dispozitivele sunt sărite silențios. -d ACTION, –directories=ACTION Dacă un fișier de intrare este un director, utilizați ACTION pentru a-l procesa. În mod implicit, ACTION este read, ceea ce înseamnă că directoarele sunt citite exact ca și cum ar fi fișiere obișnuite. Dacă ACTION este skip, directoarele sunt ignorate în mod silențios. Dacă ACTION este recurse, grep citește toate fișierele din fiecare director, în mod recursiv; acest lucru este echivalent cu opțiunea -r. –exclude=GLOB Omite fișierele al căror nume de bază se potrivește cu GLOB (folosind caractere wildcard). Un nume de fișier glob poate folosi *, ?, și ca simboluri wildcard, iar \ pentru a cita literal un caracter wildcard sau backslash. –exclude-from=FILE Ignoră fișierele al căror nume de bază se potrivește cu oricare dintre globurile de nume de fișier citite din FILE (utilizând caractere wildcard așa cum este descris la –exclude). –exclude-dir=DIR Exclude directoarele care corespund modelului DIR din căutările recursive. -I
Procesează un fișier binar ca și cum nu ar conține date care se potrivesc; aceasta este echivalentă cu opțiunea –binary-files=without-match.
–include=GLOB Căutați numai fișierele al căror nume de bază se potrivește cu GLOB (utilizând potrivirea cu caractere joker, așa cum este descris la –exclude). -R, -r, –recursive Citește toate fișierele din fiecare director, în mod recursiv; aceasta este echivalentă cu opțiunea -d recurse.
Alte opțiuni
–line-buffered Utilizați bufferizarea liniilor la ieșire. Acest lucru poate cauza o penalizare de performanță. –mmap
Dacă este posibil, utilizați apelul de sistem mmap(2) pentru a citi intrările, în loc de apelul de sistem implicit read(2). În unele situații, –mmap oferă performanțe mai bune. Cu toate acestea, –mmap poate provoca un comportament nedefinit (inclusiv goluri de nucleu) dacă un fișier de intrare se micșorează în timp ce grep funcționează sau dacă apare o eroare de I/O.
-U, –binary Tratați fișierul (fișierele) ca fiind binar. În mod implicit, în MS-DOS și MS -Windows, grep ghicește tipul de fișier uitându-se la conținutul primilor 32KB citiți din fișier. Dacă grep decide că fișierul este un fișier text, elimină caracterele CR din conținutul original al fișierului (pentru ca expresiile regulate cu ^ și $ să funcționeze corect). Specificarea lui -U anulează această presupunere, făcând ca toate fișierele să fie citite și transmise textual mecanismului de potrivire; dacă fișierul este un fișier text cu perechi CR/LF la sfârșitul fiecărei linii, acest lucru va face ca unele expresii regulate să eșueze. Această opțiune nu are niciun efect pe alte platforme decât MS-DOS și MS -Windows. -z, –null-data Tratează datele de intrare ca un set de linii, fiecare terminată cu un octet zero (caracterul ASCII NUL) în loc de o linie nouă. Ca și opțiunea -Z sau –null, această opțiune poate fi utilizată cu comenzi precum sort -z pentru a procesa nume de fișiere arbitrare.
Expresii regulate
O expresie regulată este un model care descrie un set de șiruri de caractere. Expresiile regulate sunt construite în mod analog cu expresiile aritmetice, prin utilizarea diferiților operatori pentru a combina expresii mai mici.
grep înțelege trei versiuni diferite de sintaxă a expresiilor regulate: „basic”, „extended” și „perl”. În GNU grep, nu există nicio diferență în ceea ce privește funcționalitatea disponibilă între sintaxa de bază și cea extinsă. În alte implementări, expresiile regulate de bază sunt mai puțin puternice. Următoarea descriere se aplică expresiilor regulate extinse; diferențele pentru expresiile regulate de bază sunt rezumate ulterior. Expresiile regulate Perl oferă funcționalitate suplimentară și sunt documentate în pcresyntax(3) și pcrepattern(3), dar este posibil să nu fie disponibile pe fiecare sistem.
Blocurile de construcție fundamentale sunt expresiile regulate care se potrivesc cu un singur caracter. Majoritatea caracterelor, inclusiv toate literele și cifrele, sunt expresii regulate care se potrivesc singure. Orice metacaracter cu semnificație specială poate fi citat dacă este precedat de o bară oblică inversă.
Punctul . se potrivește cu orice caracter unic.
Clasi de caractere și expresii între paranteze
O expresie între paranteze este o listă de caractere închisă de . Aceasta se potrivește cu orice caracter unic din lista respectivă; dacă primul caracter din listă este semnul ^, atunci se potrivește cu orice caracter care nu se află în listă. De exemplu, expresia regulată se potrivește cu orice cifră unică.
În cadrul unei expresii între paranteze, o expresie de interval constă din două caractere separate de o cratimă. Aceasta se potrivește cu orice caracter unic care se află între cele două caractere, inclusiv, folosind secvența de coliere și setul de caractere din localitate. De exemplu, în locația implicită C, este echivalentă cu. Multe locale sortează caracterele în ordine de dicționar, iar în aceste locale nu este de obicei echivalentă cu ; poate fi echivalentă cu , de exemplu. Pentru a obține interpretarea tradițională a expresiilor în paranteze, puteți utiliza locale C prin setarea variabilei de mediuLC_ALL la valoarea C.
În cele din urmă, anumite clase numite de caractere sunt predefinite în cadrul expresiilor în paranteze, după cum urmează. Numele lor se explică de la sine și sunt: , , , , , , , , , , , , și . De exemplu, ] înseamnă , , cu excepția celei din urmă forme care depinde de Clocale și de codificarea caracterelor ASCII, în timp ce prima este independentă de locale și de setul de caractere. (Rețineți că parantezele din aceste nume de clasă fac parte din numele simbolice și trebuie incluse în plus față de parantezele care delimitează expresia de paranteză). Majoritatea metacaracterelor își pierd semnificația specială în cadrul expresiilor cu paranteze. Pentru a include un literal ], puneți-l primul în listă. În mod similar, pentru a include un literal ^, puneți-l oriunde, dar nu primul. În cele din urmă, pentru a include un literal – plasați-l la sfârșit.
Ancorare
Careul ^ și semnul dolar $ sunt metacaractere care se potrivesc cu șirul gol la începutul și respectiv la sfârșitul unei linii.
Caracterul Backslash și expresii speciale
Simbolurile \< și \> se potrivesc, respectiv, cu șirul gol de la începutul și sfârșitul unui cuvânt. Simbolul \b se potrivește cu șirul gol la marginea unui cuvânt, iar \B se potrivește cu șirul gol, cu condiția ca acesta să nu se afle la marginea unui cuvânt. Simbolul \w este sinonim cu], iar \W este sinonim cu ].
Repetiție
O expresie regulată poate fi urmată de unul dintre mai mulți operatori de repetiție: ?
Elementul precedent este opțional și se potrivește cel mult o dată.
*
Elementul precedent se va potrivi de zero sau mai multe ori.
+
Elementul precedent se va potrivi de una sau mai multe ori.
{n}
Elementul precedent se potrivește exact de n ori.
{n,}
Elementul precedent se potrivește de n sau mai multe ori.
{,m}
Elementul precedent se potrivește de cel mult m ori.
{n,m}
Elementul precedent se potrivește de cel puțin n ori, dar nu mai mult de m ori.
Concatenarea
Două expresii regulate pot fi concatenate; expresia regulată rezultată se potrivește cu orice șir format prin concatenarea a două subșiruri care se potrivesc cu expresiile concatenate.
Alternation
Două expresii regulate pot fi unite prin operatorul infix |; expresia regulată rezultată se potrivește cu orice șir care se potrivește cu oricare dintre expresiile alternative.
Precedență
Repetiția are prioritate față de concatenare, care, la rândul ei, are prioritate față de alternanță. O expresie întreagă poate fi inclusă între paranteze pentru a anula aceste reguli de precedență și a forma o subexpresie.
Referințe anterioare și subexpresii
Referința anterioară \n, unde n este o singură cifră, se potrivește cu subșirul de caractere la care a corespuns anterior a n-a expresie între paranteze din expresia regulată.
Expresii regulate de bază vs. expresii regulate extinse
În expresiile regulate de bază, metacaracterele ?, +, {, |, ( și ) își pierd semnificația specială; în schimb, se folosesc versiunile cu ghilimele de rezervă \?, \+, \{, \|, \( și \).
Egrep tradițional nu suporta metacaracterul {, iar unele implementări egrep suportă în schimb \{, astfel încât scripturile portabile ar trebui să evite { în tiparele grep -E și ar trebui să folosească pentru a se potrivi un literal {.
GNU grep -E încearcă să suporte utilizarea tradițională presupunând că { nu este special dacă ar fi începutul unei specificații de interval invalid. De exemplu, comanda grep -E „{1” caută șirul de două caractere {1, în loc să raporteze o eroare de sintaxă în expresia gurală. POSIX.2 permite acest comportament ca o extensie, dar scripturile portabile ar trebui să-l evite.
Variabile de mediu
Comportamentul lui grep este afectat de următoarele variabile de mediu.
Localitatea pentru categoria LC_foo este specificată prin examinarea celor trei variabile de mediu LC_ALL, LC_foo, LANG, în această ordine. Prima dintre aceste variabile care este setată specifică locale. De exemplu, dacă LC_ALL nu este setată, dar LC_MESSAGES este setată topt_BR, atunci pentru categoria LC_MESSAGES se utilizează limba portugheză braziliană. Se utilizează locale C dacă niciuna dintre aceste variabile de mediu nu este setată, dacă nu este instalat catalogul de locale sau dacă grep nu a fost compilat cu suportul de limbă națională ( NLS ).
GREP_OPTIONS Această variabilă specifică opțiunile implicite care trebuie plasate în fața oricăror opțiuni explicite. De exemplu, dacă GREP_OPTIONS este „–binary-files=without-match –directories=skip”, grep se comportă ca și cum cele două opțiuni –binary-files=without-match și–directories=skip ar fi fost specificate înaintea oricăror opțiuni explicite. Specificațiile opțiunilor sunt separate prin spații albe. O backslash scapă de caracterul următor, astfel încât poate fi utilizată pentru a specifica o opțiune care conține un spațiu alb sau o backslash. GREP_COLOR Această variabilă specifică culoarea utilizată pentru evidențierea textului care corespunde (nevid). Este depreciată în favoarea GREP_COLORS, dar este încă acceptată. Capacitățile Themt, ms și mc ale GREP_COLORS au prioritate față de aceasta. Aceasta poate specifica numai culoarea utilizată pentru a evidenția textul nevid din orice linie de corespondență (o linie selectată atunci când opțiunea de linie de comandă -v este omisă sau o linie de context atunci când se specifică -v). Valoarea implicită este 01;31, ceea ce înseamnă un text de prim-plan de culoare roșie, cu bold, pe fundalul implicit al terminalului. GREP_COLORS Specifică culorile și alte atribute utilizate pentru a evidenția diferite părți ale ieșirii. Valoarea sa este o listă de capacități separate prin două puncte, care are ca valoare implicită ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36 cu capacitățile booleene rv și ne omise (adică false). Capacitățile acceptate sunt după cum urmează. sl=
SGR substring pentru liniile selectate întregi (adică liniile care corespund atunci când opțiunea de linie de comandă -v este omisă sau liniile care nu corespund atunci când este specificată opțiunea -v). Dacă totuși capacitatea booleană rv și opțiunea de linie de comandă -v sunt amândouă specificate, se aplică în schimb liniilor de potrivire a contextului. valoarea implicită este goală (adică perechea de culori implicită a terminalului).
cx=
SGR substring pentru linii întregi de context (adică linii care nu se potrivesc atunci când opțiunea de linie de comandă -v este omisă sau linii de potrivire atunci când -v este specificată). Cu toate acestea, dacă sunt specificate atât capacitatea booleană rv, cât și opțiunea de linie de comandă -v, aceasta se aplică în schimb liniilor nepotrivite selectate. Valoarea implicită este goală (adică perechea de culori implicită a terminalului).
rv
Valoare booleană care inversează (schimbă) semnificațiile capacităților sl= și cx= atunci când este specificată opțiunea de linie de comandă -v. Valoarea implicită este false (adică, capacitatea este omisă).
mt=01;31
Subșirul SGR pentru potrivirea textului nevid în orice linie de potrivire (adică o linie selectată atunci când opțiunea de linie de comandă -v este omisă sau o linie de context atunci când se specifică -v). Setarea acesteia este echivalentă cu setarea atât a ms= cât și a mc= deodată la aceeași valoare. Valoarea implicită este un antet de text roșu și îndrăzneț peste fundalul liniei curente.
ms=01;31
Subșir pentru potrivirea textului nevid într-o linie selectată. (Aceasta este utilizată numai atunci când opțiunea de linie de comandă -v este omisă.) Efectul capabilitățiil= (sau cx= dacă rv) rămâne activ atunci când aceasta intră în acțiune. Valoarea implicită este un prim-plan de text roșu îndrăzneț peste fundalul liniei curente.
mc=01;31
Subșir pentru potrivirea textului nevid într-o linie de context. (Aceasta este utilizată numai atunci când este specificată opțiunea de linie de comandă -v.) Efectul capabilitățiicx= (sau sl= dacă rv) rămâne activ atunci când aceasta intră în acțiune. Valoarea implicită este un prim-plan de text roșu și îndrăzneț peste fundalul liniei curente.
fn=35
Subșirul SGR pentru nume de fișiere care prefixează orice linie de conținut. Valoarea implicită este un prim-plan de text magenta peste fundalul implicit al terminalului.
ln=32
SGR substring pentru numerele de linie care prefixează orice linie de conținut. Valoarea implicită este un prim-plan de text verde peste fundalul implicit al terminalului.
bn=32
SGR substring for byte offsets prefixing any content line. Valoarea implicită este un prim-plan de text verde peste fundalul implicit al terminalului.
se=36
SGR subșir pentru separatorii care se inserează între câmpurile de linie selectate (:), între câmpurile de linie de context (-) și între grupurile de linii adiacente atunci când se specifică un context diferit de zero (–). Valoarea implicită este un prim-plan de text cyan peste fundalul implicit al terminalului.
ne
Valoare booleană care împiedică ștergerea până la capătul liniei folosind Erase in Line (EL) to Right (\33). LC_ALL, LC_CTYPE, LANG Aceste variabile specifică locale pentru categoria LC_CTYPE, care determină tipul de caractere, de exemplu, ce caractere sunt spații albe. LC_ALL, LC_MESSAGES, LANG Aceste variabile specifică locația pentru categoria LC_MESSAGES, care determină limba pe care grep o folosește pentru mesaje. Clocale implicit utilizează mesaje în limba engleză americană. POSIXLY_CORRECT Dacă este setat, grep se comportă așa cum cere POSIX.2; în caz contrar, grep se comportă mai mult ca alte programe GNU. POSIX.2 cere ca opțiunile care urmează după nume de fișiere să fie tratate ca nume de fișiere; în mod implicit, astfel de opțiuni sunt permutate în fruntea listeioperand și sunt tratate ca opțiuni. De asemenea, POSIX.2 cere ca opțiunile nerecunoscute să fie diagnosticate ca fiind „ilegale”, dar, deoarece acestea nu sunt cu adevărat împotriva legii, în mod implicit sunt diagnosticate ca fiind „invalide”. POSIXLY_CORRECT dezactivează, de asemenea, _N_GNU_nonoption_argv_flags_, descris mai jos. _N_GNU_GNU_nonoption_argv_flags_ (Aici N este ID-ul numeric al procesului grep.) Dacă al zecelea caracter al valorii acestei variabile de mediu este 1, nu se consideră că al zecelea operand al grep este o opțiune, chiar dacă pare a fi una. Un shell poate introduce această variabilă de mediu pentru fiecare comandă pe care o execută, specificând care operanzi sunt rezultatele expansiunii de nume de fișiere cu caractere wildcard și, prin urmare, nu trebuie tratați ca opțiuni. Acest comportament este disponibil numai cu biblioteca GNU C și numai atunci când POSIXLY_CORRECT nu este setat.
Stare de ieșire
În mod normal, starea de ieșire este 0 dacă sunt găsite liniile selectate și 1 în caz contrar. Dar starea de ieșire este 2 dacă s-a produs o eroare, cu excepția cazului în care se utilizează opțiunea -q sau–quiet sau –silent și se găsește o linie selectată. Rețineți, totuși, că POSIX impune doar, pentru programe precum asgrep, cmp și diff, ca starea de ieșire în caz de eroare să fie mai mare decât 1; prin urmare, este recomandabil, de dragul portabilității, să folosiți o logică ce testează această condiție generală în loc de egalitatea strictă cu 2.
Copyright
Copyright 1998-2000, 2002, 2005-2010 Free Software Foundation, Inc.
Acest software este liber; consultați sursa pentru condiții de copiere. Nu există nici o garanție; nici măcar pentru COMERCIALIZARE sau ADECVAREA LA UN SCOP PARTICULAR.
Bugs
Raportarea de bug-uri
Trimiteți prin e-mail rapoartele de bug-uri la <[email protected]>, o listă de discuții a cărei pagină web este <http://lists.gnu.org/mailman/listinfo/bug-grep>.grep’s Savannah bug tracker este localizat la <http://savannah.gnu.org/bugs/?group=grep>.
Bugs cunoscuți
Un număr mare de repetări în construcția {n,m} poate face ca grep să folosească foarte multă memorie. În plus, anumite expresii regulate otherobscure necesită timp și spațiu exponențial și pot face ca grep să rămână fără memorie.
Referințele înapoi sunt foarte lente și pot necesita timp exponențial.
Vezi și
Pagini regulate din manual
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).
Documentație TeXinfo
Documentația completă pentru grep este menținută ca un manual TeXinfo. Dacă programele info și grep sunt instalate corect pe site-ul dumneavoastră,comanda info grep ar trebui să vă ofere acces la manualul complet.
Note
GNU ‘s not Unix, dar Unix este o bestie; forma sa de plural este Unixen.