Tutorial de exprimare regulată Linux: Exemplu de expresii regulă Grep

Ce sunt expresiile regulate Linux?

Expresii regulate Linux sunt caractere speciale care ajută la căutarea datelor și potrivirea modelelor complexe. Expresiile regulate sunt scurtate ca „regexp” sau „regex”. Sunt folosite în multe programe Linux precum grep, bash, rename, sed etc.

Tipuri de expresii regulate

Pentru ușurință de înțelegere, permiteți-ne să învățăm diferitele tipuri de Regex unul câte unul.

Clic aici dacă videoclipul nu este accesibil

Expresii regulate de bază

Unele dintre comenzile utilizate în mod obișnuit cu expresii regulate sunt tr, sed, vi și grep. Mai jos sunt enumerate câteva dintre regex-urile de bază.

Simbol Descriptionii
. înlocuiește orice caracter
^ se potrivește cu începutul șirului
$ se potrivește cu sfârșitul șirului
* se potrivește de zero sau de mai multe ori caracterul precedent
\ Reprezintă caractere speciale
() Grupează expresiile regulate
? Se potrivește exact un caracter

Să vedem un exemplu.

Executați un exemplu de pisică pentru a vedea conținutul unui fișier existent

Expresii regulate de bază

Căutați conținut care conține litera „a”.

Expresii regulate de bază

"^' se potrivește cu începutul unui șir. Să căutăm conținut care ÎNCEPE cu a

Expresii regulate de bază

Sunt filtrate doar liniile care încep cu caracter. Liniile care nu conțin caracterul „a” la început sunt ignorate.

Să ne uităm la un alt exemplu -

Expresii regulate de bază

Selectați numai acele linii care se termină cu t folosind $

Expresii regulate de bază

Interval Expresii regulate

Aceste expresii ne spun despre numărul de apariții ale unui caracter într-un șir. Sunt

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

Exemplu:

Filtrați toate liniile care conțin caracterul „p”

Interval Expresii regulate

Vrem să verificăm că caracterul „p” apare exact de 2 ori într-un șir una după alta. Pentru aceasta sintaxa ar fi:

cat sample | grep -E p\{2}

Interval Expresii regulate

Notă: trebuie să adăugați -E cu aceste expresii regulate.

Expresii regulate extinse

Aceste expresii regulate conțin combinații de mai multe expresii. Unii dintre ei 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

Exemplu:

Căutarea tuturor caracterelor „t”

Expresii regulate extinse

Să presupunem că vrem să filtram liniile în care caracterul „a” precede caracterul „t”

Putem folosi comanda ca

cat sample|grep "a\+t"

Expresii regulate extinse

Expansiunea bretelor

Sintaxa pentru extinderea acoladelor este fie o secvență, fie o listă de elemente separate prin virgulă în interiorul acoladelor „{}”. Elementele de început și de sfârșit dintr-o secvență sunt separate prin două puncte „..”.

Cateva exemple:

Expansiunea bretelor

În exemplele de mai sus, comanda echo creează șiruri folosind expansiunea brete.

Rezumat:

  • Expresiile regulate sunt un set de caractere folosite pentru a verifica modelele din șiruri
  • Ele sunt, de asemenea, numite „regexp” și „regex”
  • Este important să înveți expresii regulate pentru a scrie scenarii
  • Câteva expresii regulate de bază sunt:
Simbol Descriptionii
. înlocuiește orice caracter
^ se potrivește cu începutul șirului
$ se potrivește cu sfârșitul șirului
  • Unele expresii regulate extinse 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
  • Unele expresii regulate de interval sunt:
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
  • Expansiunea bretelor este folosită pentru a genera șiruri. Ajută la crearea mai multor șiruri dintr-unul.