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
Căutați conținut care conține litera „a”.
"^' se potrivește cu începutul unui șir. Să căutăm conținut care ÎNCEPE cu a
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 -
Selectați numai acele linii care se termină cu t folosind $
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”
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}
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”
Să presupunem că vrem să filtram liniile în care caracterul „a” precede caracterul „t”
Putem folosi comanda ca
cat sample|grep "a\+t"
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:
Î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.