grep, egrep, fgrep, rgrep - afișează liniile care se
potrivesc cu modelele
grep [OPȚIUNE...] MODELE
[FIȘIER...]
grep [OPȚIUNE...] -e MODELE ...
[FIȘIER...]
grep [OPȚIUNE...] -f FIȘIER_MODEL
... [FIȘIER...]
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ă.
- --help
- Afișează un scurt mesaj de utilizare și iese.
- -V, --version
- Afișează numărul de versiune al lui grep
și iese.
- -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.
- -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.
Dacă FIȘIERUL este - , se citesc modelele de
la intrarea standard.
- -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 $.
- -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.
- -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ă.
- -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.
- -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.
- --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.
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, expresiile regulate de bază și cele
extinse sunt doar notații diferite pentru aceeași
funcționalitate de potrivire a modelelor. În alte
implementări, expresiile regulate de bază sunt în mod
normal mai puțin puternice decât cele extinse, deși,
ocazional, este invers. Următoarea descriere se aplică
expresiilor regulate extinse; diferențele pentru expresiile regulate
de bază sunt rezumate ulterior. Expresiile regulate compatibile cu
Perl au o funcționalitate diferită ș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.
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.
Accentul circumflex ^ și semnul de dolar $
sunt metacaractere care se potrivesc cu șirul gol la începutul
și, respectiv, la sfârșitul unei linii.
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:]].
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.
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.
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).
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ț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.
În expresiile regulate de bază, metacaracterele
?, +, {, |, ( și )
își pierd semnificația specială; în
schimb, se folosesc versiunile cu bară oblică inversă
\?, \+, \{, \|, \( și
\).
Î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.
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”.
Această pagină de manual este
întreținută doar intermitent; documentația
completă este adesea mai actualizată.
Drepturi de autor 1998-2000, 2002, 2005-2023 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.
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⟩
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.
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.
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)
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.
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⟩.