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 | 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'
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 | 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'
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 | 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.










