care este diferența dintre Grep, Egrep și Fgrep în Linux?

unul dintre instrument de căutare de renume pe sisteme de tip Unix, care poate fi folosit pentru a căuta orice, Fie că este un fișier, sau o linie sau mai multe linii în fișier este grep utility. Este foarte vastă în funcționalitate, care poate fi atribuită numărului mare de opțiuni pe care le acceptă, cum ar fi: căutarea folosind modelul șir, sau modelul reg-ex sau reg-ex bazat pe perl etc.

diferența dintre grep, egrep și fgrep
diferența dintre grep, egrep și fgrep în Linux

datorită funcționalităților sale variate, are multe variante, inclusiv grep, egrep (grep extins), fgrep (grep fix), pgrep (proces grep), rgrep (grep recursiv) etc. Dar aceste variante au diferențe minore față de grep original, ceea ce le-a făcut populare și pentru a fi utilizate de diverși programatori Linux pentru sarcini specifice.

principalul lucru care rămâne de investigat este care sunt diferențele dintre cele trei variante principale, adică ‘grep’, ‘egrep’ și ‘fgrep’ ale grep care îi face pe utilizatorii Linux să aleagă una sau alta versiune conform cerințelor.

unele Meta-caractere speciale ale grep

  1. + – echivalent cu una sau mai multe apariții ale caracterului anterior.
  2. ? – aceasta denotă aproape 1 repetare a caracterului anterior. Like:a? s-ar potrivi cu ” A ” sau „aa”.
  3. ( – începutul expresiei de alternanță.
  4. ) – sfârșitul expresiei de alternanță.
  5. | – potrivirea oricăreia dintre expresiile separate prin'|'. Like: "(a|b)cde” s-ar potrivi fie cu ‘abcde’, fie cu ‘bbcde’.
  6. { – acest meta-caracter indică începutul specificatorului intervalului. Like: "a{2}” se potrivește cu” aa ” în fișier, adică de 2 ori.
  7. } – acest meta-caracter indică specificatorul de sfârșit de interval.

diferențele dintre grep, egrep și fgrep

unele diferențe principale între grep, egrep și fgrep pot fi evidențiate după cum urmează. Pentru acest set de exemple, presupunem că fișierul pe care se efectuează operația este:

Linux grep Command
Linux grep Command

grep Command

grep sau global Regular Expression Print este principalul program de căutare pe sisteme asemănătoare Unix care poate căuta orice tip de șir pe orice fișier sau listă de fișiere sau chiar de ieșire de orice comandă.

sugestii de citire: 12 Exemple practice de comandă Linux grep

folosește expresii regulate de bază în afară de șiruri normale ca model de căutare. În expresiile regulate de bază (BRE), meta-caractere precum: '{','}''(',')''|''+''?' pierde sensul lor și sunt tratate ca caractere normale de șir și nevoie pentru a fi scăpat dacă vor fi tratați ca personaje speciale.

Suggested Read: 11 Advance ‘Grep’ comenzi pe clase de caractere și expresii suport

De asemenea, grep folosește algoritmul Boyer-Moore pentru căutarea rapidă orice șir sau expresie regulată.

$ grep -C 0 '(f|g)ile' check_file$ grep -C 0 '\(f\|g\)ile' check_file
Linux grep Command Example
Linux grep Command Example

Like here, when the command is run without escaping '(' ')' and '|' then it searched for the complete string i.e. "(f|g)ile” in the file. Dar când caracterele speciale au scăpat, atunci în loc să le trateze ca parte a șirului, grep le-a tratat ca meta-caractere și a căutat cuvinte "file” sau "gile” în fișier.

comanda Egrep

Egrep sau grep-E este o altă versiune a grep sau grep extins. Această versiune a grep este eficientă și rapidă atunci când vine vorba de căutarea unui model de expresie regulată, deoarece tratează meta-caracterele așa cum este și nu le înlocuiește ca șiruri ca în grep și, prin urmare, sunteți eliberați de povara de a scăpa de ele ca în grep. Folosește ERE sau setul de expresii regulate extinse.

în cazul egrep, chiar dacă nu scăpați de meta-caractere, le-ar trata ca caractere speciale și le-ar înlocui cu semnificația lor specială în loc să le trateze ca parte a șirului.

$ egrep -C 0 '(f|g)ile' check_file$ egrep -C 0 '\(f\|g\)ile' check_file
Exemple de comenzi Linux egrep
Exemple de comenzi Linux egrep

ca aici, egrep a căutat "file” șir atunci când meta-caracterele nu au fost scăpate așa cum ar însemna prin semnificația acestor caractere. Dar, când aceste caractere au scăpat, atunci egrep le-a tratat ca parte a șirului și a căutat șirul complet "(f|g)ile” în fișier.

comanda fgrep

fgrep sau grep fix sau grep-F este încă o altă versiune a grep, care este rapid în căutarea atunci când vine vorba de a căuta întregul șir în loc de expresie regulată, deoarece nu recunoaște expresiile regulate, nici orice meta-caractere. Pentru căutarea oricărui șir direct, aceasta este versiunea grep care ar trebui selectată.

Fgrep caută șir complet și nici măcar nu recunoaște caractere speciale ca parte a expresiei regulate, chiar dacă a scăpat sau nu a scăpat.

$ fgrep -C 0 '(f|g)ile' check_file$ fgrep -C 0 '\(f\|g\)ile' check_file
Linux Exemple de comandă fgrep
Linux Exemple de comandă fgrep

ca, atunci când meta-caracterele nu au scăpat, fgrep a căutat șirul complet "(f|g)ile” în fișier, iar când meta-caracterele au scăpat, atunci comanda fgrep a căutat "\(f\|g\)ile” toate caracterele ca în fișier.

am acoperit deja câteva exemple practice de comandă grep le puteți citi aici, dacă doriți să obțineți mai mult din comanda grep în Linux.

Aflați 12 Exemple practice de comandă Linux grep

concluzie

Mai sus evidențiate sunt diferențele dintre ‘grep’, ‘egrep’ și ‘fgrep’. În afară de diferența dintre setul de expresii regulate utilizate și viteza de execuție, parametrii liniei de comandă rest rămân aceiași pentru toate cele trei versiuni ale grep și chiar în loc de „egrep” sau „fgrep”, se recomandă utilizarea „grep-e” sau „grep-F”.

Posted on

Lasă un răspuns

Adresa ta de email nu va fi publicată.