Linux Regular Expression Tutorial: Grep Regex Eksempel
โก Smart oppsummering
Regelmessige uttrykk i Linux er spesielle tegnsekvenser som sรธker i data og matcher komplekse mรธnstre pรฅ tvers av verktรธy som grep, sed og vi, ved hjelp av grunnleggende, intervall-, utvidede og klammeparentesutvidelsesformer for รฅ filtrere tekst presist.

Regulรฆre uttrykk er en av de kraftigste funksjonene i Linux tekstverktรธy, som lar deg matche, filtrere og transformere data med kompakte mรธnstre. Denne siden forklarer de grunnleggende, intervall- og utvidede formene, pluss utvidelse av parenteser, med eksempler pรฅ utarbeidede grep.
Hva er regulรฆre Linux-uttrykk?
Linux-regulรฆre uttrykk er spesialtegn som hjelper med รฅ sรธke i data og finne komplekse mรธnstre. Regulรฆre uttrykk forkortes som ยซregexpยป eller ยซregexยป. De brukes i mange Linux-programmer, f.eks. grep, bash, endre navn, sed og mer.
Typer regulรฆre uttrykk
For รฅ gjรธre det enklere รฅ forstรฅ, la oss lรฆre de ulike typene regulรฆre uttrykk รฉn etter รฉn. Denne siden dekker grunnleggende, intervall- og utvidede regulรฆre uttrykk, og avsluttes med utvidelse av parenteser.
Grunnleggende regulรฆre uttrykk
Noen av de vanligste kommandoene som fungerer med regulรฆre uttrykk er tr, sed, vi, og grep. Tabellen nedenfor viser noen av de grunnleggende regulรฆre uttrykkene.
| symbol | Tekniske beskrivelser |
|---|---|
| . | Erstatter et hvilket som helst tegn |
| ^ | Samsvarer med starten av en streng |
| $ | Samsvarer med slutten av en streng |
| * | Samsvarer null eller flere ganger med det foregรฅende tegnet |
| \ | Representerer spesialtegn |
| () | Grupperer regulรฆre uttrykk |
| ? | Samsvarer med nรธyaktig ett tegn |
La oss se pรฅ et eksempel. Kjรธr fรธrst cat sample for รฅ vise innholdet i en eksisterende fil, som vist nedenfor.
Sรธk deretter etter innhold som inneholder bokstaven ยซaยป. Skjermbildet nedenfor viser grep som returnerer hver linje som inneholder en ยซaยป.
Cirkumflekstegnet '^' samsvarer med starten av en streng. Eksemplet nedenfor sรธker etter innhold som starter med bokstaven 'a'.
Bare linjer som starter med tegnet filtreres. Linjer som ikke inneholder tegnet 'a' i starten ignoreres.
La oss se pรฅ et annet eksempel. Skjermbildet nedenfor viser igjen innholdet i eksempelfilen fรธr filtrering etter slutten av en linje.
Velg bare de linjene som slutter med bokstaven 't' ved รฅ bruke '$'-ankeret, som vist nedenfor.
Intervall Regulรฆre uttrykk
Disse uttrykkene angir antall forekomster av et tegn i en streng. De er listet opp nedenfor.
| 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 |
For eksempel, filtrer ut alle linjer som inneholder tegnet 'p'. Skjermbildet nedenfor viser de samsvarende linjene.
Sjekk nรฅ at tegnet 'p' forekommer nรธyaktig to ganger i en streng, รฉn etter den andre. Syntaksen for dette er:
cat sample | grep -E p\{2}
Resultatet av intervallkampen vises nedenfor.
Merk: Du mรฅ legge til -E med disse regulรฆre uttrykkene.
Utvidede regulรฆre uttrykk
Disse regulรฆre uttrykkene kombinerer 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 |
For eksempel, sรธk etter alle forekomster av tegnet 't'. Skjermbildet nedenfor viser resultatet.
Anta at du vil filtrere ut linjer der tegnet 'a' kommer fรธr tegnet 't'. Du kan bruke en kommando som den nedenfor:
cat sample|grep "a\+t"
Utdataene vises i fรธlgende skjermbilde.
Utvidelse av bรธyle
Syntaksen for utvidelse av parenteser er enten en sekvens eller en kommaseparert liste med elementer innenfor krรธllparenteser '{}'. Start- og sluttelementene i en sekvens er atskilt med to punktum '..'.
Noen eksempler er vist nedenfor.
I eksemplene ovenfor lager echo-kommandoen strenger ved hjelp av parentesutvidelse, og produserer flere strenger ut av et enkelt mรธnster.










