Linux Regular Expression Tutorial: Grep Regex Eksempel

Hvad er regulรฆre Linux-udtryk?

Linux regulรฆre udtryk er specialtegn, som hjรฆlper med at sรธge data og matche komplekse mรธnstre. Regulรฆre udtryk forkortes som 'regexp' eller 'regex'. De bruges i mange Linux-programmer som grep, bash, rename, sed osv.

Typer af regulรฆre udtryk

For at lette forstรฅelsen, lad os lรฆre de forskellige typer af Regex รฉn efter รฉn.

Klik link. hvis videoen ikke er tilgรฆngelig

Grundlรฆggende regulรฆre udtryk

Nogle af de almindeligt anvendte kommandoer med regulรฆre udtryk er tr, sed, vi og grep. Nedenfor er nogle af de grundlรฆggende Regex.

Symbol Descriptioner
. erstatter ethvert tegn
^ matcher starten af โ€‹โ€‹strengen
$ matcher enden af โ€‹โ€‹strengen
* matcher nul eller flere gange det foregรฅende tegn
\ Reprรฆsenterer specialtegn
() Grupper regulรฆre udtryk
? Matcher nรธjagtigt รฉt tegn

Lad os se et eksempel.

Udfรธr katteprรธve for at se indholdet af en eksisterende fil

Grundlรฆggende regulรฆre udtryk

Sรธg efter indhold, der indeholder bogstavet 'a'.

Grundlรฆggende regulรฆre udtryk

'^' matcher starten af โ€‹โ€‹en streng. Lad os sรธge efter indhold, der STARTER med en

Grundlรฆggende regulรฆre udtryk

Kun linjer, der starter med tegn, filtreres. Linjer, der ikke indeholder tegnet 'a' i starten, ignoreres.

Lad os se pรฅ et andet eksempel -

Grundlรฆggende regulรฆre udtryk

Vรฆlg kun de linjer, der slutter med t vha $

Grundlรฆggende regulรฆre udtryk

Interval Regulรฆre udtryk

Disse udtryk fortรฆller os om antallet af forekomster af et tegn i en streng. De er

Udtryk Beskrivelse
{ikke} Matcher det foregรฅende tegn, der vises 'n' gange nรธjagtigt
{n,m} Matcher det foregรฅende tegn, der vises 'n' gange, men ikke mere end m
{n, } Matcher kun det foregรฅende tegn, nรฅr det vises 'n' gange eller mere

Eksempel:

Filtrer alle linjer fra, der indeholder tegnet 'p'

Interval Regulรฆre udtryk

Vi vil kontrollere, at tegnet 'p' optrรฆder prรฆcis 2 gange i en streng efter hinanden. Til dette vil syntaksen vรฆre:

cat sample | grep -E p\{2}

Interval Regulรฆre udtryk

Bemรฆrk: Du skal tilfรธje -E med disse regulรฆre udtryk.

Udvidede regulรฆre udtryk

Disse regulรฆre udtryk indeholder kombinationer af mere end รฉt udtryk. Nogle af dem er:

Udtryk Beskrivelse
\+ Matcher en eller flere forekomster af det forrige tegn
\? Matcher nul eller รฉn forekomst af det forrige tegn

Eksempel:

Sรธger efter alle tegn 't'

Udvidede regulรฆre udtryk

Antag, at vi รธnsker at bortfiltrere linjer, hvor tegnet 'a' gรฅr foran tegnet 't'

Vi kan bruge kommando som

cat sample|grep "a\+t"

Udvidede regulรฆre udtryk

Bรธjleudvidelse

Syntaksen for klammerudvidelse er enten en sekvens eller en kommasepareret liste over elementer inden for krรธllede klammer "{}". Start- og slutelementerne i en sekvens er adskilt af to punktum "...".

Nogle eksempler:

Bรธjleudvidelse

I ovenstรฅende eksempler opretter ekko-kommandoen strenge ved hjรฆlp af klammerudvidelsen.

Sammendrag:

  • Regulรฆre udtryk er et sรฆt tegn, der bruges til at kontrollere mรธnstre i strenge
  • De kaldes ogsรฅ 'regexp' og 'regex'
  • Det er vigtigt at lรฆre regulรฆre udtryk for at skrive manuskripter
  • Nogle grundlรฆggende regulรฆre udtryk er:
Symbol Descriptioner
. erstatter ethvert tegn
^ matcher starten af โ€‹โ€‹strengen
$ matcher enden af โ€‹โ€‹strengen
  • Nogle udvidede regulรฆre udtryk er:
Udtryk Beskrivelse

\+

Matcher en eller flere forekomster af det forrige tegn
\? Matcher nul eller รฉn forekomst af det forrige tegn
  • Nogle regulรฆre intervaludtryk er:
Udtryk Beskrivelse
{ikke} Matcher det foregรฅende tegn, der vises 'n' gange nรธjagtigt
{n,m} Matcher det foregรฅende tegn, der vises 'n' gange, men ikke mere end m
{n, } Matcher kun det foregรฅende tegn, nรฅr det vises 'n' gange eller mere
  • Bรธjleudvidelsen bruges til at generere strenge. Det hjรฆlper med at skabe flere strenge ud af รฉn.

Opsummer dette indlรฆg med: