Linux Regular Expression Tutorial: Grep Regex Eksempel
Hva er regulære Linux-uttrykk?
Linux regulære uttrykk er spesialtegn som hjelper til med å søke i data og matche komplekse mønstre. Regulære uttrykk forkortes som 'regexp' eller 'regex'. De brukes i mange Linux-programmer som grep, bash, rename, sed, etc.
Typer regulære uttrykk
For enkel forståelse, la oss lære de forskjellige typene Regex én etter én.
Klikk her. hvis videoen ikke er tilgjengelig
Grunnleggende regulære uttrykk
Noen av de vanligste kommandoene med regulære uttrykk er tr, sed, vi og grep. Nedenfor er noen av de grunnleggende Regex.
symbol | Descriptioner |
---|---|
. | erstatter alle tegn |
^ | matcher starten på strengen |
$ | samsvarer med slutten av strengen |
* | samsvarer med null eller flere ganger det foregående tegnet |
\ | Representerer spesialtegn |
() | Grupperer regulære uttrykk |
? | Matcher nøyaktig ett tegn |
La oss se et eksempel.
Kjør katteksempel for å se innholdet i en eksisterende fil
Søk etter innhold som inneholder bokstaven 'a'.
'^' samsvarer med starten på en streng. La oss søke etter innhold som STARTER med en
Bare linjer som starter med tegn blir filtrert. Linjer som ikke inneholder tegnet 'a' i starten ignoreres.
La oss se på et annet eksempel –
Velg bare de linjene som slutter med t ved hjelp av $
Intervall Regulære uttrykk
Disse uttrykkene forteller oss om antall forekomster av et tegn i en streng. Det er de
Uttrykk | Tekniske beskrivelser |
---|---|
{N} | Tilsvarer det foregående tegnet som vises 'n' ganger nøyaktig |
{n,m} | Matcher det foregående tegnet som vises 'n' ganger, men ikke mer enn m |
{n, } | Matcher det foregående tegnet bare når det vises 'n' ganger eller mer |
Eksempel:
Filtrer ut alle linjer som inneholder tegnet 'p'
Vi ønsker å sjekke at tegnet 'p' vises nøyaktig 2 ganger i en streng etter hverandre. For dette vil syntaksen være:
cat sample | grep -E p\{2}
Merk: Du må legge til -E med disse regulære uttrykkene.
Utvidede regulære uttrykk
Disse regulære uttrykkene inneholder kombinasjoner av mer enn ett uttrykk. Noen av dem er:
Uttrykk | Tekniske beskrivelser |
---|---|
\+ | Tilsvarer én eller flere forekomster av det forrige tegnet |
\? | Tilsvarer null eller én forekomst av det forrige tegnet |
Eksempel:
Søker etter alle tegn 't'
Anta at vi vil filtrere ut linjer der tegnet 'a' kommer foran tegnet 't'
Vi kan bruke kommando som
cat sample|grep "a\+t"
Utvidelse av bøyle
Syntaksen for klammeparentesutvidelse er enten en sekvens eller en kommadelt liste over elementer innenfor krøllete klammeparenteser "{}". Start- og sluttelementene i en sekvens er atskilt med to punktum "...".
Noen eksempler:
I eksemplene ovenfor oppretter ekko-kommandoen strenger ved hjelp av klammerutvidelsen.
Sammendrag:
- Regulære uttrykk er et sett med tegn som brukes til å sjekke mønstre i strenger
- De kalles også 'regexp' og 'regex'
- Det er viktig å lære faste uttrykk for å skrive manus
- Noen grunnleggende regulære uttrykk er:
symbol | Descriptioner |
---|---|
. | erstatter alle tegn |
^ | matcher starten på strengen |
$ | samsvarer med slutten av strengen |
- Noen utvidede regulære uttrykk er:
Uttrykk | Tekniske beskrivelser |
---|---|
\+ |
Tilsvarer én eller flere forekomster av det forrige tegnet |
\? | Tilsvarer null eller én forekomst av det forrige tegnet |
- Noen regulære intervalluttrykk er:
Uttrykk | Tekniske beskrivelser |
---|---|
{N} | Tilsvarer det foregående tegnet som vises 'n' ganger nøyaktig |
{n,m} | Matcher det foregående tegnet som vises 'n' ganger, men ikke mer enn m |
{n, } | Matcher det foregående tegnet bare når det vises 'n' ganger eller mer |
- Brace-utvidelsen brukes til å generere strenger. Det hjelper med å lage flere strenger av én.