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

Grunnleggende regulære uttrykk

Søk etter innhold som inneholder bokstaven 'a'.

Grunnleggende regulære uttrykk

'^' samsvarer med starten på en streng. La oss søke etter innhold som STARTER med en

Grunnleggende regulære uttrykk

Bare linjer som starter med tegn blir filtrert. Linjer som ikke inneholder tegnet 'a' i starten ignoreres.

La oss se på et annet eksempel –

Grunnleggende regulære uttrykk

Velg bare de linjene som slutter med t ved hjelp av $

Grunnleggende regulære uttrykk

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'

Intervall Regulære uttrykk

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}

Intervall Regulære uttrykk

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'

Utvidede regulære uttrykk

Anta at vi vil filtrere ut linjer der tegnet 'a' kommer foran tegnet 't'

Vi kan bruke kommando som

cat sample|grep "a\+t"

Utvidede regulære uttrykk

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:

Utvidelse av bøyle

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.