Linuxi regulaaravaldise õpetus: Grep Regexi näide

Mis on Linuxi regulaaravaldised?

Linuxi regulaaravaldised on erimärgid, mis aitavad otsida andmeid ja sobitada keerulisi mustreid. Regulaaravaldisi lühendatakse kui 'regexp' või 'regex'. Neid kasutatakse paljudes Linuxi programmides, nagu grep, bash, ümbernimetamine, sed jne.

Regulaaravaldiste tüübid

Arusaadavuse hõlbustamiseks uurime ükshaaval erinevaid Regexi tüüpe.

Click siin kui video pole juurdepääsetav

Põhilised Regulaaravaldised

Mõned regulaaravaldistega sagedamini kasutatavad käsud on tr, sed, vi ja grep. Allpool on loetletud mõned põhilised Regex.

Sümbol Descriptioone
. asendab mis tahes tähemärki
^ vastab stringi algusele
$ vastab stringi lõpule
* vastab null või enam korda eelnevale märgile
\ Esindavad erimärke
() Rühmitab regulaaravaldisi
? Sobib täpselt ühele tähemärgile

Vaatame näidet.

Käivitage kassi näidis, et näha olemasoleva faili sisu

Põhilised Regulaaravaldised

Otsige sisu, mis sisaldab tähte "a".

Põhilised Regulaaravaldised

"^' vastab stringi algusele. Otsime sisu, mis ALGAB tähega a

Põhilised Regulaaravaldised

Filtreeritakse ainult tähemärgiga algavaid ridu. Neid ridu, mis ei sisalda alguses märki "a", ignoreeritakse.

Vaatame teist näidet -

Põhilised Regulaaravaldised

Valige ainult need read, mis lõpevad t kasutades $

Põhilised Regulaaravaldised

Intervall Regulaaravaldised

Need avaldised räägivad meile tähemärgi esinemiste arvu stringis. Nad on

Väljendus Kirjeldus
{mitte} Vastab täpselt eelnevale märgile, mis ilmub 'n' korda
{n,m} Vastab eelnevale märgile, mis esineb "n" korda, kuid mitte rohkem kui m
{n, } Vastab eelnevale märgile ainult siis, kui see ilmub "n" korda või rohkem

Näide:

Filtreerige kõik read, mis sisaldavad märki "p"

Intervall Regulaaravaldised

Tahame kontrollida, et tähemärk 'p' esineks stringis üksteise järel täpselt 2 korda. Selle jaoks oleks süntaks järgmine:

cat sample | grep -E p\{2}

Intervall Regulaaravaldised

Märkus. Nende regulaaravaldistega peate lisama -E.

Laiendatud regulaaravaldised

Need regulaaravaldised sisaldavad rohkem kui ühe avaldise kombinatsioone. Mõned neist on:

Väljendus Kirjeldus
\+ Vastab ühe või mitme eelmise märgi esinemisele
\? Vastab eelmise märgi nullile või ühele esinemisele

Näide:

Otsin kõiki tähemärke "t"

Laiendatud regulaaravaldised

Oletame, et tahame välja filtreerida read, kus märk "a" eelneb märgile "t"

Saame kasutada käsku nagu

cat sample|grep "a\+t"

Laiendatud regulaaravaldised

Trakside laiendamine

Sulgude laiendamise süntaks on kas jada või komadega eraldatud loend lokkis sulgudes „{}”. Jada algus- ja lõppüksused on eraldatud kahe punktiga "...".

Mõned näited:

Trakside laiendamine

Ülaltoodud näidetes loob kajakäsk stringid, kasutades sulgvardade laiendust.

Kokkuvõte:

  • Regulaaravaldised on märkide kogum, mida kasutatakse stringide mustrite kontrollimiseks
  • Neid nimetatakse ka regexpiks ja regexiks
  • Skriptide kirjutamiseks on oluline õppida regulaaravaldisi
  • Mõned põhilised regulaaravaldised on järgmised:
Sümbol Descriptioone
. asendab mis tahes tähemärki
^ vastab stringi algusele
$ vastab stringi lõpule
  • Mõned laiendatud regulaaravaldised on järgmised:
Väljendus Kirjeldus

\+

Vastab ühe või mitme eelmise märgi esinemisele
\? Vastab eelmise märgi nullile või ühele esinemisele
  • Mõned intervalli regulaaravaldised on järgmised:
Väljendus Kirjeldus
{mitte} Vastab täpselt eelnevale märgile, mis ilmub 'n' korda
{n,m} Vastab eelnevale märgile, mis esineb "n" korda, kuid mitte rohkem kui m
{n, } Vastab eelnevale märgile ainult siis, kui see ilmub "n" korda või rohkem
  • Sulgude laiendust kasutatakse stringide genereerimiseks. See aitab luua mitu stringi ühest.