table of contents
- bookworm-backports 4.24.0-2~bpo12+1
- testing 4.24.0-2
- unstable 4.24.0-2
GREP(1) | Comenzi utilizator | GREP(1) |
NUME¶
grep, egrep, fgrep, rgrep - afișează liniile care se potrivesc cu modelele
SINOPSIS¶
grep [OPȚIUNE...] MODELE
[FIȘIER...]
grep [OPȚIUNE...] -e MODELE ...
[FIȘIER...]
grep [OPȚIUNE...] -f FIȘIER_MODEL
... [FIȘIER...]
DESCRIERE¶
grep caută MODELE în fiecare FIȘIER. MODELE reprezintă unul sau mai multe modele separate prin caractere de linie nouă, iar grep afișează fiecare linie care corespunde unui model. De obicei, MODELELE trebuie să fie citate atunci când grep este utilizat într-o comandă shell.
Un FIȘIER de tipul „-”reprezintă intrarea standard. Dacă nu se indică niciun FIȘIER, căutările recursive examinează directorul de lucru, iar căutările nerecursive citesc intrarea standard.
Debian include, de asemenea, programele variante egrep, fgrep și rgrep. Aceste programe sunt identice cu grep -E, grep -F și, respectiv, grep -r. Aceste variante sunt depreciate în amonte (în sursa codului oferită de dezvoltatorii «grep»), dar Debian asigură compatibilitatea cu trecutul. Din motive de portabilitate, se recomandă evitarea programelor variante și utilizarea în schimb a grep cu opțiunea aferentă.
OPȚIUNI¶
Informații generice despre program¶
- --help
- Afișează un scurt mesaj de utilizare și iese.
- -V, --version
- Afișează numărul de versiune al lui grep și iese.
Sintaxă model¶
- -E, --extended-regexp
- Interpretează MODELELE ca expresii regulate extinse (ERE-uri, a se vedea mai jos).
- -F, --fixed-strings
- Interpretează MODELELE ca șiruri fixe, nu ca expresii regulate.
- -G, --basic-regexp
- Interpretați MODELELE ca expresii regulate de bază (ERB-uri, a se vedea mai jos). Aceasta este valoarea implicită.
- -P, --perl-regexp
- Interpretează MODELELE ca expresii regulate compatibile cu Perl (PCRE). Această opțiune este experimentală atunci când este combinată cu opțiunea -z (--null-data), iar grep -P poate avertiza cu privire la caracteristicile neimplementate.
Controlare potrivire¶
- -e MODELE, --regexp=MODELE
- Utilizează MODELE ca modele. Dacă această opțiune este utilizată de mai multe ori sau este combinată cu opțiunea -f (--file), se caută toate modelele date. Această opțiune poate fi utilizată pentru a proteja un model care începe cu „-”.
- -f FIȘIER, --file=FIȘIER
- Obține modele din FIȘIER, unul pe linie. Dacă această opțiune este utilizată de mai multe ori sau este combinată cu opțiunea -e (--regexp), se caută toate modelele date. Fișierul gol conține zero modele și, prin urmare, nu se potrivește cu nimic.
- -i, --ignore-case
- Ignoră diferențele dintre majuscule și minuscule din modele și datele de intrare, astfel încât caracterele care diferă doar prin majuscule să se potrivească între ele.
- --no-ignore-case
- Nu ignoră diferențele dintre majuscule și minuscule în modele și în datele de intrare. Aceasta este valoarea implicită. Această opțiune este utilă pentru a fi transmisă scripturilor shell care utilizează deja -i, pentru a anula efectele acesteia, deoarece cele două opțiuni se substituie reciproc.
- -v, --invert-match
- Inversează sensul de potrivire, pentru a selecta liniile care nu se potrivesc.
- -w, --word-regexp
- Selectează numai acele linii care conțin corespondențe care formează cuvinte întregi. Testul constă în faptul că subșirul care corespunde trebuie să se afle 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 de cuvânt sunt litere, cifre și liniuțe de subliniere. Această opțiune nu are niciun efect dacă se specifică și -x.
- -x, --line-regexp
- Selectează numai acele corespondențe care corespund exact întregii linii. Pentru un model de expresie regulată, acest lucru este ca și cum ai pune în paranteze modelul și apoi l-ai încadra cu ^ și $.
Controlul general al ieșirii¶
- -c, --count
- Elimină ieșirea normală; în schimb, afișează un număr de linii corespunzătoare pentru fiecare fișier de intrare. Cu opțiunea -v, --invert-match (a se vedea mai sus), numără liniile care nu corespund.
- --color[=CÂND], --colour[=CÂND]
- Înconjoară șirurile de caractere (nevide), 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 eludare pentru a le afișa în culori pe terminal. Culorile sunt definite de variabila de mediu GREP_COLORS. CÂND este never (niciodată), always (întotdeauna) sau auto.
- -L, --files-without-match
- Suprimă ieșirea normală; în schimb, afișează numele fiecărui fișier de intrare din care în mod normal nu ar fi fost afișată nicio ieșire.
- -l, --files-with-matches
- Suprimă ieșirea normală; în schimb, afișează numele fiecărui fișier de intrare din care ar fi fost afișată în mod normal ieșirea. Scanarea fiecărui fișier de intrare se oprește la prima potrivire.
- -m NUMĂR, --max-count=NUMĂR
- Oprește citirea unui fișier după NUMĂR linii potrivite. Dacă NUMĂR este zero, grep se oprește imediat fără a citi datele de intrare. Un NUMĂR de -1 este tratat ca infinit și grep nu se oprește; aceasta este valoarea implicită. În cazul în care intrarea este o intrare standard dintr-un fișier obișnuit și NUMĂR linii care se potrivesc sunt afișate, grep se asigură că intrarea standard este poziționată imediat după ultima linie de corespondență înainte de a ieși, indiferent de prezența liniilor 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ĂR linii de potrivire, acesta afișează orice linii de context care urmează. Atunci când se utilizează și opțiunea -c sau --count, grep nu afișează un număr mai mare decât NUMĂR. Atunci când se utilizează și opțiunea -v sau --invert-match, grep se oprește după ce a afișat NUMĂR linii care nu se potrivesc.
- -o, --only-matching
- Afișează numai părțile care se potrivesc (și care nu sunt goale) dintr-o linie de potrivire, fiecare parte fiind pe o linie de ieșire separată.
- -q, --quiet, --silent
- Silențios; nu scrie nimic la 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.
- -s, --no-messages
- Suprimă mesajele de eroare privind fișierele inexistente sau care nu pot fi citite.
Controlul prefixului liniei de ieșire¶
- -b, --byte-offset
- Afișează decalajul de octeți (începând de la octetul 0) în fișierul de intrare înainte de fiecare linie de ieșire. Dacă este specificat -o (--only-matching), se afișează decalajul părții de potrivire în sine.
- -H, --with-filename
- Afișează numele fișierului pentru fiecare potrivire. Aceasta este opțiunea implicită atunci când există mai multe fișiere de căutat. Aceasta este o extensie GNU.
- -h, --no-filename
- Suprimă prefixarea numelor de fișiere la ieșire. Aceasta este valoarea implicită atunci când există un singur fișier (sau doar intrarea standard) de căutat.
- --label=ETICHETA
- Afișează intrarea care provine de fapt de la intrarea standard ca intrare provenind din fișierul ETICHETA. Acest lucru poate fi util pentru comenzile care transformă conținutul unui fișier înainte de căutare, de exemplu, «gzip -cd foo.gz | grep --label=foo -H 'vreun-model'». A se vedea, de asemenea, opțiunea -H.
- -n, --line-number
- Prefixează fiecare linie de ieșire cu numărul de linie (începând de la 1) din fișierul de intrare.
- -T, --initial-tab
- Se asigură că primul caracter al conținutului propriu-zis al liniei se află pe o tabulație, astfel încât alinierea tabulațiilor să aibă un aspect normal. Acest lucru este util în cazul opțiunilor care își prefixează ieșirea față de 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 afișate într-o lățime de câmp de dimensiune minimă.
- -Z, --null
- Afișează un octet zero (caracterul ASCII NUL) în locul caracterului care urmează în mod normal după un nume de fișier. De exemplu, grep -lZ generează 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 numelor de fișiere care conțin caractere neobișnuite, cum ar fi liniile noi. Această opțiune poate fi utilizată împreună cu comenzi precum find -print0, perl -0, sort -z și xargs -0 pentru a procesa nume de fișiere arbitrare, chiar și cele care conțin caractere de linie nouă.
Controlul liniei contextuale¶
- -A NUMĂR, --after-context=NUMĂR
- Afișează NUMĂR linii de context după liniile care se potrivesc. Plasează o linie care conține un separator de grup (--) între grupurile contigue de corespondențe. În cazul opțiunii -o sau -^-only-matching, acest lucru nu are niciun efect și se emite un avertisment.
- -B NUMĂR, --before-context=NUMĂR
- Afișează NUMĂR linii de context înainte de liniile care se potrivesc. Plasează o linie care conține un separator de grup (--) între grupurile contigue de corespondențe. În cazul opțiunii -o sau -^-only-matching, acest lucru nu are niciun efect și se emite un avertisment.
- -C NUM, -NUMĂR, --context=NUMĂR
- Afișează NUMĂR linii de context de ieșire. Plasează o linie care conține un separator de grup (--) între grupurile contigue de potriviri. În cazul opțiunii -o sau -^-only-matching, acest lucru nu are niciun efect și se emite un avertisment.
- --group-separator=SEPARATOR
- Atunci când se utilizează -A, -B sau -C, imprimă SEPARATOR în loc de -- între grupurile de linii.
- --no-group-separator
- Atunci când se utilizează -A, -B sau -C, nu imprimă un separator între grupurile de linii.
Selectarea fișierelor și directoarelor¶
- -a, --text
- Procesează un fișier binar ca și cum ar fi text; aceasta este echivalentă cu opțiunea --binary-files=text.
- --binary-files=TIP
- În cazul în care datele sau metadatele unui fișier indică faptul că fișierul conține date binare, se presupune că fișierul este de tip TIP. Octeții care nu sunt text indică date binare; aceștia sunt fie octeți de ieșire care sunt codificați în mod necorespunzător pentru regiunea curentă, fie octeți de intrare nuli atunci când nu este furnizată opțiunea -z.
- În mod implicit, TIP este binary, iar grep suprimă ieșirea după ce se descoperă date binare de intrare nule și suprimă liniile de ieșire care conțin date codificate necorespunzător. Atunci când unele ieșiri sunt suprimate, grep urmează orice ieșire cu un mesaj la ieșirea de eroare standard care informează că un fișier binar corespunde.
- Dacă TIP este without-match, atunci când grep descoperă date binare de intrare nule, presupune că restul fișierului nu se potrivește; acest lucru este echivalent cu opțiunea -I.
- Dacă TIP este text, grep procesează un fișier binar ca și cum ar fi text; acest lucru este echivalent cu opțiunea -a.
- Când tip este binary, grep poate trata octeții care nu sunt text ca terminatori de linie chiar și fără opțiunea -z. Aceasta înseamnă că alegerea binary față de text poate afecta dacă un model se potrivește cu un fișier. De exemplu, atunci când tip este binary, modelul q$ ar putea să se potrivească cu q urmat imediat de un octet nul, chiar dacă acesta nu se potrivește atunci când tip este text. În schimb, atunci când tip este binar, este posibil ca modelul . (punct) să nu se potrivească cu un octet nul.
- Atenție: Opțiunea -a ar putea afișa deșeuri binare, ceea ce poate avea efecte secundare neplăcute dacă ieșirea este un terminal și dacă controlorul terminalului interpretează o parte din ele ca fiind comenzi. Pe de altă parte, atunci când se citesc fișiere ale căror codificări de text sunt necunoscute, poate fi util să se utilizeze -a sau să definiți LC_ALL='C' în mediu, pentru a găsi mai multe corespondențe, chiar dacă acestea nu sunt sigure pentru afișarea directă.
- -D ACȚIUNE, --devices=ACȚIUNE
- Dacă un fișier de intrare este un dispozitiv, FIFO sau soclu, utilizați ACȚIUNE pentru a-l procesa. În mod implicit, ACȚIUNEA este read, ceea ce înseamnă că dispozitivele sunt citite ca și cum ar fi fișiere obișnuite. Dacă ACȚIUNEA este skip, dispozitivele sunt omise în mod silențios.
- -d ACȚIUNE, --directories=ACȚIUNE
- Dacă un fișier de intrare este un director, utilizați ACȚIUNE pentru a-l procesa. În mod implicit, ACȚIUNEA este read, adică citește directoarele ca și cum ar fi fișiere obișnuite. Dacă ACȚIUNEA este skip, se omit silențios directoarele. Dacă ACȚIUNEA este recurse, se citesc toate fișierele din fiecare director, în mod recursiv, urmând legăturile simbolice numai dacă acestea se află în linia de comandă. Aceasta este echivalentă cu opțiunea -r.
- --exclude=GLOBAL
- Ignoră orice fișier din linia de comandă cu un sufix de nume care se potrivește cu modelul GLOBAL, folosind caractere joker; un sufix de nume este fie întregul nume, fie o parte din urmă care începe cu un caracter care nu este o bară oblică imediat după o bară oblică (/) în nume. Atunci când se efectuează o căutare recursivă, se sare peste orice subfișier al cărui nume de bază se potrivește cu GLOBAL; numele de bază este partea de după ultima bară oblică. Un model poate folosi *, ? și [...] drept caractere joker, iar \ pentru a cita literal un caracter joker sau o bară oblică inversă.
- --exclude-from=FIȘIER
- Omite fișierele al căror nume de bază se potrivește cu oricare dintre modelele globale de nume de fișiere citite din FIȘIER (utilizând potrivirea cu caractere joker, așa cum este descris la --exclude).
- --exclude-dir=GLOBAL
- Omite orice director din linia de comandă cu un sufix de nume care se potrivește cu modelul GLOBAL. În cazul căutării recursive, se omite orice subdirector al cărui nume de bază se potrivește cu GLOBAL. Ignoră orice bară oblică redundantă din GLOBAL.
- -I
- Procesează un fișier binar ca și cum nu ar conține potriviri de date; acest lucru este echivalent cu opțiunea --binary-files=without-match.
- --include=GLOBAL
- Caută numai fișierele al căror nume de bază se potrivește cu GLOBAL (folosind caractere joker de potrivire așa cum este descris la --exclude). În cazul în care sunt date opțiuni contradictorii --include și --exclude, ultima opțiune care se potrivește câștigă. Dacă nici o opțiune --include sau --exclude nu se potrivește, un fișier este inclus, cu excepția cazului în care prima opțiune de acest tip este --include.
- -r, --recursive
- Citește toate fișierele din fiecare director, în mod recursiv, urmărind legăturile simbolice numai dacă acestea se află în linia de comandă. Rețineți că, dacă nu se indică un operand de fișier, grep caută în directorul de lucru. Acest lucru este echivalent cu opțiunea -d recurse.
- -R, --dereference-recursive
- Citește toate fișierele din fiecare director, în mod recursiv. Urmărește toate legăturile simbolice, spre deosebire de -r.
Alte opțiuni¶
- --line-buffered
- Utilizează memoria tampon de linie la ieșire. Acest lucru poate cauza o penalizare a performanței.
- -U, --binary
- Tratează fișierul (fișierele) ca fiind binar(e). În mod implicit, în MS-DOS și MS-Windows, grep ghicește dacă un fișier este text sau binar, așa cum este descris pentru opțiunea --binary-files. 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 -U anulează această presupunere, făcând ca toate fișierele să fie citite și transmise mecanismului de potrivire textual; 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 și de ieșire ca secvențe 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 se construiesc î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: „bazic” (ERB), „extins” (ERE) și „perl” (PCRE). Î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 avansate. Următoarea descriere se aplică expresiilor regulate extinse; diferențele pentru expresiile regulate de bază sunt rezumate ulterior. Expresiile regulate compatibile cu Perl oferă funcționalități suplimentare și sunt documentate în pcre2syntax(3) și pcre2pattern(3), dar funcționează numai dacă este activat suportul PCRE.
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 prin precedarea lui cu o bară oblică inversă.
Punctul . se potrivește cu orice caracter unic. Nu este specificat dacă se potrivește cu o eroare de codificare.
Clase de caractere și expresii între paranteze¶
O expresie între paranteze este o listă de caractere cuprinsă între [ și ]. Se potrivește cu orice caracter din lista respectivă. Dacă primul caracter din listă este caracterul ^, atunci se potrivește cu orice caracter care nu este în listă; nu este specificat dacă se potrivește cu o eroare de codificare. De exemplu, expresia regulată [0123456789] se potrivește cu orice cifră unică.
În cadrul unei expresii între paranteze, o expresie expresie de interval este formată din două caractere separate prin cratimă. Aceasta se potrivește cu orice caracter unic care se află între cele două caractere, inclusiv, folosind secvența de colaționare și setul de caractere din configurația regională. De exemplu, în configurația regională implicită C, [a-d] este echivalent cu [abcd]. Multe configurații regionale sortează caracterele în ordinea în care se face într-un dicționar, iar în aceste configurații regionale [a-d] nu este de obicei echivalent cu [abcd]; ar putea fi echivalent cu [aBbCcDd], de exemplu. Pentru a obține interpretarea tradițională a expresiilor între paranteze, puteți utiliza configurația regională C prin definirea variabilei de mediu LC_ALL la valoarea C.
De asemenea, anumite clase de caractere sunt predefinite în cadrul expresiilor între paranteze, după cum urmează. Numele lor sunt autoexplicative și sunt [:alnum:] (alfanumerice), [:alpha:] (alfabetice), [:blank:] (spații și tabulatoare), [:cntrl:] (caractere de control), [:digit:] (cifre), [:graph:] (caractere vizibile), [:lower:] (minuscule), [:print:] (caractere imprimabile), [:punct:] (caractere de punctuație), [:space:] (spații în alb), [:upper:] (majuscule) și [:xdigit:]. De exemplu, [[:alnum:]] înseamnă clasa de caractere a numerelor și literelor din configurația regională curentă. În configurația regională C și în codificarea setului de caractere ASCII, aceasta este aceeași cu [0-9A-Za-z]. Rețineți că parantezele din aceste nume de clase fac parte din numele simbolice și trebuie incluse în plus față de parantezele care delimitează expresia de paranteze. Majoritatea metacaracterelor își pierd semnificația specială în interiorul expresiilor între paranteze. Pentru a include un literal ], plasați-l primul în listă. În mod similar, pentru a include un literal ^ plasați-l oriunde, dar nu primul. În cele din urmă, pentru a include un literal -, plasați-l ultimul.
Ancorarea¶
Accentul circumflex ^ și semnul de dolar $ sunt metacaractere care se potrivesc cu șirul gol la începutul și, respectiv, la sfârșitul unei linii.
Caracterul de bară oblică inversă și expresiile speciale¶
Simbolurile \< și \> corespund șirului gol la începutul și, respectiv, la sfârșitul unui cuvânt. Simbolul \b corespunde șirului gol la marginea unui cuvânt, iar \B corespunde șirului gol, cu condiția ca acesta să nu fie la marginea unui cuvânt. Simbolul \w este un sinonim pentru [_[:alnum:]], iar \W este un sinonim pentru [^_[:alnum:]].
Repetiția¶
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. Aceasta este o extensie GNU.
- {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.
Alternative¶
Două expresii regulate pot fi unite prin operatorul infix |; expresia regulată rezultată se potrivește cu orice șir de caractere care se potrivește cu oricare dintre cele două expresii (expresii alternative).
Precedența¶
Repetiția are prioritate față de concatenare, care, la rândul ei, are prioritate față de alternare. O expresie întreagă poate fi inclusă între paranteze pentru a anula aceste reguli de precedență și a forma o subexpresie.
Retro-referințe și subexpresii¶
Retro-referința \n, unde n este o singură cifră, se potrivește cu subșirul de caractere care s-a potrivit anterior cu cea de-a n-a subexpresie între paranteze a expresiei regulate.
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 bară oblică inversă \?, \+, \{, \|, \( și \).
STARE DE IEȘIRE¶
În mod normal, starea de ieșire este 0 dacă este selectată o linie, 1 dacă nu a fost selectată nicio linie și 2 dacă s-a produs o eroare. Cu toate acestea, în cazul în care se utilizează -q sau --quiet sau --silent și se selectează o linie, starea de ieșire este 0 chiar dacă a apărut o eroare.
MEDIU¶
Comportamentul lui grep este afectat de următoarele variabile de mediu.
Configurația regională 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 definită va determina configurația regională folosită. De exemplu, dacă LC_ALL nu este definită, dar LC_MESSAGES este definită la pt_BR, atunci pentru categoria LC_MESSAGES se utilizează configurația regională portugheză-braziliană. Se utilizează configurația regională C dacă niciuna dintre aceste variabile de mediu nu este definită, dacă nu este instalat catalogul lingvistic regional sau dacă grep nu a fost compilat cu suportul pentru limbi naționale (NLS). Comanda de shell locale -a enumeră configurațiile regionale care sunt disponibile în prezent.
- GREP_COLORS
- Controlează modul în care opțiunea --color evidențiază ieșirea. 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 următoarele.
- sl=
- Subșirul SGR pentru liniile întregi selectate (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ă -v). Dacă totuși capacitatea booleană rv și opțiunea de linie de comandă -v sunt ambele specificate, se aplică în schimb liniilor care corespund contextului. Valoarea implicită este goală (adică perechea de culori implicită a terminalului).
- cx=
- Subșirul SGR pentru liniile întregi din context (adică liniile care nu corespund atunci când opțiunea de linie de comandă -v este omisă sau liniile care corespund atunci când este specificată -v). Cu toate acestea, dacă sunt specificate atât capacitatea booleană rv, cât și opțiunea de linie de comandă -v, 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șir 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 este specificată -v). Definirea acestei valori este echivalentă cu definirea atât a ms=, cât și a mc= deodată la aceeași valoare. Valoarea implicită este un prim-plan de text roșu aldin peste fundalul liniei curente.
- ms=01;31
- Subșir SGR 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 capacității sl= (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 aldin peste fundalul liniei curente.
- mc=01;31
- Subșir SGR 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 capacității cx= (sau sl= dacă rv) rămâne activ atunci când aceasta intră în funcțiune. Valoarea implicită este un prim-plan de text roșu aldin 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 (fucsină, purpuriu) pe fundalul implicit al terminalului.
- ln=32
- Subșirul SGR 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
- Subșir SGR pentru decalajele de octeți care prefixează orice linie de conținut. Valoarea implicită este un prim-plan de text verde peste fundalul implicit al terminalului.
- se=36
- Subșirul SGR pentru separatorii care se inserează între câmpurile de linii selectate (:), între câmpurile de linii 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 cian (azuriu) peste fundalul implicit al terminalului.
- ne
- Valoare booleană care previne ștergerea până la sfârșitul liniei folosind ștergerea în linie („Erase in Line”: EL) la dreapta (\33[K) de fiecare dată când se termină un element colorat. Acest lucru este necesar pe terminalele pe care EL nu este admis. În rest, este utilă pe terminalele pentru care nu se aplică capacitatea booleană terminfo back_color_erase (bce), atunci când culorile de evidențiere alese nu afectează fundalul sau când EL este prea lent sau provoacă prea multă pâlpâire. Valoarea implicită este false (adică, capacitatea este omisă).
Rețineți că capacitățile booleene nu au partea =.... Acestea sunt omise (adică false) în mod implicit și devin adevărate atunci când sunt specificate.
Consultați secțiunea Select Graphic Rendition (SGR) din documentația terminalului de text utilizat pentru valorile permise și semnificația acestora ca atribute de caractere. Aceste valori de subșir sunt numere întregi în reprezentare zecimală și pot fi concatenate cu punct și virgulă. grep se ocupă de asamblarea rezultatului într-o secvență SGR completă (\33[...m). Valorile comune de concatenat includ 1 pentru aldin, 4 pentru subliniere, 5 pentru clipire, 7 pentru invers, 39 pentru culoarea de prim-plan implicită, de la 30 la 37 pentru culori de prim-plan, de la 90 la 97 pentru culori de prim-plan în modul 16 culori, de la 38;5;0 la 38;5; 255 pentru culorile de prim-plan în modurile 88 și 256 de culori, 49 pentru culoarea de fundal implicită, de la 40 la 47 pentru culorile de fundal, de la 100 la 107 pentru culorile de fundal în modul 16 culori și de la 48;5;0 la 48;5;255 pentru culorile de fundal în modurile 88 și 256 de culori.
- LC_ALL, LC_COLLATE, LANG
- Aceste variabile specifică configurația regională pentru categoria LC_COLLATE, care determină secvența de colaționare utilizată pentru a interpreta expresii de tip [a-z].
- LC_ALL, LC_CTYPE, LANG
- Aceste variabile specifică configurația regională pentru categoria LC_CTYPE, care determină tipul de caractere, de exemplu, ce caractere sunt spații albe. Această categorie determină, de asemenea, codificarea caracterelor, adică dacă textul este codificat în UTF-8, ASCII sau altă codificare. În configurația regională C sau POSIX, toate caracterele sunt codificate ca un singur octet și fiecare octet este un caracter valid.
- LC_ALL, LC_MESSAGES, LANG
- Aceste variabile specifică configurația regională pentru categoria LC_MESSAGES, care determină limba pe care grep o utilizează pentru mesaje. În mod implicit, configurația regională C folosește mesaje în limba engleză americană.
- POSIXLY_CORRECT
- Dacă este definită, grep se comportă așa cum cere POSIX; în caz contrar, grep se comportă mai mult ca alte programe GNU. POSIX cere ca opțiunile care urmează după numele de fișiere să fie tratate ca nume de fișiere; în mod implicit, astfel de opțiuni sunt permutate în fața listei de operanzi și sunt tratate ca opțiuni. De asemenea, POSIX 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 „nevalabile”. POSIXLY_CORRECT dezactivează, de asemenea, _N_GNU_nonoption_argv_flags_, descrisă mai jos.
- _N_GNU_nonoption_argv_flags_
- Aici, N este ID-ul numeric al procesului grep. Dacă al ilea caracter al valorii acestei variabile de mediu este 1, nu se consideră că al ilea operand al lui grep este o opțiune, chiar dacă pare a fi una. Un shell poate introduce această variabilă în mediu pentru fiecare comandă pe care o execută, specificând care operanzi sunt rezultatele expansiunii cu caractere joker a numelui de fișier ș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 activată.
NOTE¶
Această pagină de manual este întreținută doar intermitent; documentația completă este adesea mai actualizată.
DREPTURI DE AUTOR¶
Drepturi de autor 1998-2000, 2002, 2005-2022 Free Software Foundation, Inc.
Acesta este software liber; consultați sursa pentru condițiile de copiere. NU există NICIO garanție; nici măcar pentru COMERCIALIZARE sau POTRIVIRE PENTRU UN ANUMIT SCOP.
ERORI¶
Raportarea erorilor¶
Trimiteți rapoartele de erori prin poșta electronică la adresa de raportare a erorilor ⟨bug-grep@gnu.org⟩ corespondență electronică și un sistem de urmărire a erorilor ⟨https://debbugs.gnu.org/cgi/pkgreport.cgi?package=grep⟩
Erori cunoscute¶
Un număr mare de repetări în construcția {n,m} poate face ca grep să utilizeze foarte multă memorie. În plus, anumite alte expresii regulate obscure necesită timp și spațiu exponențial și pot face ca grep să rămână fără memorie.
Retro-referințele sunt foarte lente și pot necesita timp exponențial.
EXEMPLU¶
Exemplul următor afișează locația și conținutul oricărei linii care conține „f” și se termină în „c”, în toate fișierele din directorul curent ale căror nume conțin „g” și se termină în „h”. Opțiunea -n afișează numerele de linie, argumentul -- tratează expansiunile lui „g*g*.h” care încep cu „-” ca nume de fișiere și nu ca opțiuni, iar fișierul gol /dev/null determină afișarea numelor de fișiere chiar dacă un singur nume de fișier are forma „g*.h”.
$ grep -n -- 'f.*\.c$' *g*.h /dev/null argmatch.h:1:/* definiții și prototipuri pentru argmatch.c
Singura linie care se potrivește este linia 1 din argmatch.h. Rețineți că sintaxa expresiei regulate utilizată în model diferă de sintaxa cu caractere joker pe care shell-ul o utilizează pentru a potrivi numele de fișiere.
CONSULTAȚI ȘI¶
Paginile de manual¶
awk(1), cmp(1), diff(1), find(1), perl(1), sed(1), sort(1), xargs(1), read(2), pcre2(3), pcre2syntax(3), pcre2pattern(3), terminfo(5), glob(7), regex(7)
Documentația completă¶
Un manual complet este disponibil la adresa ⟨https://www.gnu.org/software/grep/manual/⟩ și grep sunt instalate corect în sistemul dvs., comanda
- info grep
ar trebui să vă permită accesul la manualul
complet.
TRADUCERE¶
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la ⟨translation-team-ro@lists.sourceforge.net⟩.
2019-12-29 | GNU grep 3.8 |