Tutorial de exprimare regulată Linux: Exemplu de expresii regulă Grep
⚡ Rezumat inteligent
Expresiile regulate Linux sunt secvențe speciale de caractere care caută date și potrivesc modele complexe în instrumente precum grep, sed și vi, folosind forme de bază, interval, extinse și de expansiune acoladă pentru a filtra textul cu precizie.

Expresiile regulate sunt una dintre cele mai puternice caracteristici ale Linux instrumente text, care vă permit să potriviți, să filtrați și să transformați date cu modele compacte. Această pagină explică formele de bază, de interval și extinsă, plus expansiunea acoladelor, cu exemple grep funcționale.
Ce sunt expresiile regulate Linux?
Expresiile regulate Linux sunt caractere speciale care ajută la căutarea datelor și la potrivirea modelelor complexe. Expresiile regulate sunt prescurtate ca „regexp” sau „regex”. Sunt utilizate în multe programe Linux, cum ar fi grep, bash, redenumire, sed și multe altele.
Tipuri de expresii regulate
Pentru o mai bună înțelegere, haideți să învățăm diferitele tipuri de expresii regulate pe rând. Această pagină acoperă expresiile regulate de bază, de interval și extinse și se încheie cu expansiunea acoladelor.
Expresii regulate de bază
Unele dintre comenzile utilizate în mod obișnuit care lucrează cu expresii regulate sunt tr, sed, viși grep. Tabelul de mai jos listează câteva dintre expresiile regulate de bază.
| Simbol | Descriere |
|---|---|
| . | Înlocuiește orice caracter |
| ^ | Se potrivește cu începutul unui șir de caractere |
| $ | Se potrivește cu sfârșitul unui șir de caractere |
| * | Se potrivește cu zero sau mai multe dintre caracterele precedente |
| \ | Reprezintă caractere speciale |
| () | Grupează expresiile regulate |
| ? | Se potrivește cu exact un caracter |
Să vedem un exemplu. Mai întâi, rulați comanda cat sample pentru a afișa conținutul unui fișier existent, așa cum se arată mai jos.
Apoi, căutați conținut care conține litera „a”. Captura de ecran de mai jos arată grep returnând fiecare linie care include un „a”.
Signul circumflex „^” se potrivește cu începutul unui șir de caractere. Exemplul de mai jos caută conținut care începe cu litera „a”.
Sunt filtrate doar liniile care încep cu caracterul „a”. Liniile care nu conțin caracterul „a” la început sunt ignorate.
Să ne uităm la un alt exemplu. Captura de ecran de mai jos arată din nou conținutul fișierului exemplu înainte de filtrarea după sfârșitul liniei.
Selectați doar acele linii care se termină cu litera „t” utilizând ancora „$”, așa cum se arată mai jos.
Interval Expresii regulate
Aceste expresii specifică numărul de apariții ale unui caracter într-un șir de caractere. Sunt enumerate mai jos.
| Expresie | Descriere |
|---|---|
| {nu} | Se potrivește cu caracterul precedent care apare exact de „n” ori |
| {n,m} | Se potrivește cu caracterul precedent care apare de „n” ori, dar nu mai mult de m |
| {n,} | Se potrivește cu caracterul precedent numai atunci când apare de „n” ori sau de mai multe ori |
De exemplu, filtrați toate liniile care conțin caracterul „p”. Captura de ecran de mai jos prezintă liniile corespondente.
Acum verificați dacă caracterul „p” apare exact de două ori într-un șir de caractere, una după alta. Sintaxa pentru aceasta este:
cat sample | grep -E p\{2}
Rezultatul meciului la intervale este prezentat mai jos.
Notă: trebuie să adăugați -E cu aceste expresii regulate.
Expresii regulate extinse
Aceste expresii regulate combină mai multe expresii. Câteva dintre ele sunt:
| Expresie | Descriere |
|---|---|
| \+ | Se potrivește cu una sau mai multe apariții ale caracterului anterior |
| \? | Se potrivește cu zero sau cu o apariție a caracterului anterior |
De exemplu, căutați toate aparițiile caracterului „t”. Captura de ecran de mai jos arată rezultatul.
Să presupunem că vrei să filtrezi liniile în care caracterul „a” precede caracterul „t”. Poți folosi o comandă precum cea de mai jos:
cat sample|grep "a\+t"
Rezultatul este afișat în următoarea captură de ecran.
Expansiunea bretelor
Sintaxa pentru extinderea acoladelor este fie o secvență, fie o listă de elemente separate prin virgulă, între acoladele „{}”. Elementele inițiale și finale dintr-o secvență sunt separate prin două puncte, „..”.
Câteva exemple sunt prezentate mai jos.
În exemplele de mai sus, comanda echo creează șiruri de caractere folosind expansiunea acoladelor, producând mai multe șiruri dintr-un singur model.










