Tutorial Linux Expression Regular: Exemplu Grep Regex

Cuprins:

Anonim

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 scurtate ca „regexp” sau „regex”. Acestea sunt utilizate în multe programe Linux, cum ar fi grep, bash, redenumire, sed etc.

Tipuri de expresii regulate

Pentru o mai bună înțelegere, să învățăm pe rând diferitele tipuri de Regex.

  • Expresii regulate de bază
  • Interval Expresii regulate
  • Expresii regulate extinse
  • rezumat

Faceți clic aici dacă videoclipul nu este accesibil

Expresii regulate de bază

Unele dintre comenzile frecvent utilizate cu expresii regulate sunt tr, sed, vi și grep. Mai jos sunt enumerate câteva dintre Regex de bază.

Simbol Descrieri
. înlocuiește orice personaj
meciurile începutul șirului
$ se potrivește la sfârșitul șirului
* se potrivește cu zero sau de mai multe ori cu caracterul precedent
\ Reprezentați personaje speciale
() Grupează expresii regulate
? Se potriveste exact cu un personaj

Să vedem un exemplu.

Executați o mostră 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 un

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

Să analizăm 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 dintr-un șir. Sunt

Expresie Descriere
{n}

Se potrivește cu caracterul precedent care apare exact de „n” ori

{n, m} Se potrivește cu caracterul precedent care apare „n” ori nu mai mult de m
{n,} Se potrivește cu caracterul precedent numai atunci când apare de „n” ori sau mai mult

Exemplu:

Filtrează toate liniile care conțin caracterul „p”

Vrem să verificăm dacă caracterul „p” apare exact de 2 ori într-un șir unul după altul. 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:

Se caută toate caracterele „t”

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

Putem folosi comanda de genul

cat sample|grep "a\+t"

Extinderea bretelei

Sintaxa pentru extinderea parantezei este fie o secvență, fie o listă separată de virgule a elementelor din interiorul parantezelor „{}”. Elementele inițiale și finale ale unei secvențe sunt separate prin două puncte „…”.

Cateva exemple:

În exemplele de mai sus, comanda echo creează șiruri folosind extinderea acoladei.

Rezumat:

  • Expresiile regulate sunt un set de caractere utilizate pentru a verifica tiparele în șiruri
  • Ele mai sunt numite „regexp” și „regex”
  • Este important să învățați expresii regulate pentru scrierea de scripturi
  • Unele expresii regulate de bază sunt:
Simbol Descrieri
. înlocuiește orice personaj
meciurile începutul șirului
$ se potrivește la 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 ale intervalului sunt:
Expresie Descriere
{n} Se potrivește cu caracterul precedent care apare exact de „n” ori
{n, m} Se potrivește cu caracterul precedent care apare „n” ori nu mai mult de m
{n,} Se potrivește cu caracterul precedent numai atunci când apare de „n” ori sau mai mult
  • Extinderea bretelei este utilizată pentru a genera șiruri. Ajută la crearea mai multor șiruri dintr-una.