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
Søg efter indhold, der indeholder bogstavet 'a'.
'^' matcher starten af en streng. Lad os søge efter indhold, der STARTER med en
Kun linjer, der starter med tegn, filtreres. Linjer, der ikke indeholder tegnet 'a' i starten, ignoreres.
Lad os se på et andet eksempel -
Vælg kun de linjer, der slutter med t vha $
Interval Regulære udtryk
Disse udtryk fortæller os om antallet af forekomster af et tegn i en streng. De er
Udtryk | Description |
---|---|
{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'
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}
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 | Description |
---|---|
\+ | 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'
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"
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:
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 | Description |
---|---|
\+ |
Matcher en eller flere forekomster af det forrige tegn |
\? | Matcher nul eller én forekomst af det forrige tegn |
- Nogle regulære intervaludtryk er:
Udtryk | Description |
---|---|
{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.