Linux Regular Expression Tutorial: Grep Regex Eksempel

Innholdsfortegnelse:

Anonim

Hva er Linux Regular Expressions?

Linux Regular Expressions er spesialtegn som hjelper 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, omdøpe, sed, etc.

Typer av regulære uttrykk

For å gjøre det lettere å forstå, la oss lære de forskjellige typene Regex en etter en.

  • Grunnleggende regulære uttrykk
  • Intervall Vanlige uttrykk
  • Utvidede regulære uttrykk
  • Sammendrag

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 Beskrivelser
. erstatter enhver karakter
samsvarer med start av streng
$ samsvarer med slutten på strengen
* samsvarer med null eller flere ganger forrige tegn
\ Representer spesialtegn
() Grupper vanlige uttrykk
? Matcher nøyaktig ett tegn

La oss se et eksempel.

Utfør katteprøve 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 begynner 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 Vanlige uttrykk

Disse uttrykkene forteller oss om antall forekomster av et tegn i en streng. De er

Uttrykk Beskrivelse
{n}

Matcher det forrige tegnet som vises 'n' ganger nøyaktig

{n, m} Matcher forrige tegn som vises 'n' ganger, men ikke mer enn m
{n,} Matcher bare forrige tegn når det vises 'n' ganger eller mer

Eksempel:

Filtrer ut alle linjene som inneholder tegnet 'p'

Vi vil sjekke at tegnet 'p' vises nøyaktig to ganger i en streng etter hverandre. For dette ville 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 Beskrivelse

\ +

Matcher en eller flere forekomster av forrige karakter

\?

Matcher null eller en forekomst av forrige tegn

Eksempel:

Søker etter alle tegnene 't'

Anta at vi vil filtrere ut linjer der tegnet 'a' går foran tegnet 't'

Vi kan bruke kommando som

cat sample|grep "a\+t"

Brace utvidelse

Syntaksen for spenneutvidelse er enten en sekvens eller en kommaseparert liste over elementer i krøllete bukseseler "{}". Start- og sluttelementene i en sekvens er atskilt med to perioder "…".

Noen eksempler:

I eksemplene ovenfor oppretter ekkokommandoen strenger ved hjelp av brace-utvidelsen.

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 regelmessige uttrykk for å skrive manus
  • Noen grunnleggende regulære uttrykk er:
Symbol Beskrivelser
. erstatter enhver karakter
samsvarer med start av streng
$ samsvarer med slutten på strengen
  • Noen utvidede regulære uttrykk er:
Uttrykk Beskrivelse
\ + Matcher en eller flere forekomster av forrige karakter
\? Matcher null eller en forekomst av forrige tegn
  • Noen intervallregulære uttrykk er:
Uttrykk Beskrivelse
{n} Matcher det forrige tegnet som vises 'n' ganger nøyaktig
{n, m} Matcher forrige tegn som vises 'n' ganger, men ikke mer enn m
{n,} Matcher bare forrige tegn når det vises 'n' ganger eller mer
  • Brace-utvidelsen brukes til å generere strenger. Det hjelper til med å lage flere strenger av en.