Linux Regular Expression Tutorial: Grep Regex-eksempel

Indholdsfortegnelse:

Anonim

Hvad er Linux Regular Expressions?

Linux Regular Expressions er specialtegn, der 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, omdøb, sed osv.

Typer af regulære udtryk

For at lette forståelsen, lad os lære de forskellige typer Regex en efter en.

  • Grundlæggende regulære udtryk
  • Interval Regulære udtryk
  • Udvidede regulære udtryk
  • Resumé

Klik her, 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 Beskrivelser
. erstatter enhver karakter
matcher start af streng
$ matcher slutningen af ​​strengen
* matcher nul eller flere gange det foregående tegn
\ Repræsenter specialtegn
() Grupper regelmæssige udtryk
? Matcher nøjagtigt et 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 på 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 ved hjælp af $

Interval Regulære udtryk

Disse udtryk fortæller os om antallet af forekomster af et tegn i en streng. De er

Udtryk Beskrivelse
{n}

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, der indeholder tegnet 'p', ud

Vi vil kontrollere, at tegnet 'p' vises nøjagtigt 2 gange i en streng efter hinanden. Til dette ville 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 et udtryk. Nogle af dem er:

Udtryk Beskrivelse

\ +

Matcher en eller flere forekomster af det forrige tegn

\?

Matcher nul eller en forekomst af det forrige tegn

Eksempel:

Søger efter alle tegn 't'

Antag, at vi vil filtrere linjer, hvor tegn 'a' går forud for karakter 't'

Vi kan bruge kommando som

cat sample|grep "a\+t"

Brace ekspansion

Syntaksen for udvidelse af afstivning er enten en sekvens eller en komma-adskilt liste over emner inde i krøllede seler "{}". Start- og slutelementerne i en sekvens er adskilt af to perioder "…".

Nogle eksempler:

I ovenstående eksempler opretter ekkokommandoen strenge ved hjælp af bøjleudvidelsen.

Resumé:

  • 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 regelmæssige udtryk til at skrive manuskripter
  • Nogle grundlæggende regulære udtryk er:
Symbol Beskrivelser
. erstatter enhver karakter
matcher start af streng
$ matcher slutningen af ​​strengen
  • Nogle udvidede regulære udtryk er:
Udtryk Beskrivelse
\ + Matcher en eller flere forekomster af det forrige tegn
\? Matcher nul eller en forekomst af det forrige tegn
  • Nogle intervalregulære udtryk er:
Udtryk Beskrivelse
{n} 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 en.