Linuxi regulaaravaldise õpetus: näide Grepi regulaaravaldisest

Lang L: none (table-of-contents):

Anonim

Mis on Linuxi regulaaravaldised?

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

Regulaaravaldiste tüübid

Mõistmise hõlbustamiseks õppige Regexi erinevad tüübid ükshaaval.

  • Põhilised regulaaravaldised
  • Intervall Regulaarsed väljendid
  • Laiendatud regulaaravaldised
  • Kokkuvõte

Kui videole pole juurdepääsu, klõpsake siin

Põhilised regulaaravaldised

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

Sümbol Kirjeldused
. asendab mis tahes märki
vastab stringi algusele
$ vastab stringi lõpule
* sobitub eelmise tähemärgiga nullist või rohkem
\ Esitage erimärke
() Grupeerib regulaaravaldisi
? Sobitab täpselt ühe märgi

Vaatame näite.

Olemasoleva faili sisu nägemiseks käivitage kassi proov

Otsige a-tähega sisu.

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

Filtreeritakse ainult read, mis algavad tähemärgiga. Ridu, mille alguses ei ole tähte „a”, eiratakse.

Vaatame veel ühte näidet -

Valige $ abil ainult need read, mis lõpevad tähega t

Intervall Regulaarsed väljendid

Need väljendid räägivad meile stringi märgi esinemiste arvust. Nemad on

Väljendus Kirjeldus
{n}

Sobib täpselt eelmise tähemärgiga, mis kuvatakse n-korda

{n, m} Sobib eelmise tähemärgiga, mis ilmub 'n' korda, kuid mitte rohkem kui m
{n,} Sobib eelneva tähemärgiga ainult siis, kui see ilmub n-korda või rohkem

Näide:

Filtreerige välja kõik read, mis sisaldavad märki 'p'

Tahame kontrollida, kas märk „p” ilmub stringis täpselt 2 korda üksteise järel. Selle jaoks oleks süntaks järgmine:

cat sample | grep -E p\{2}

Märkus. Nende regulaaravaldistega peate lisama -E.

Laiendatud regulaaravaldised

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

Väljendus Kirjeldus

\ +

Sobib ühe või mitme eelmise märgi esinemisega

\?

Sobib nulli või ühe eelmise märgi esinemisega

Näide:

Kõigi tähemärkide 't' otsimine

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

Me võime kasutada käsku like

cat sample|grep "a\+t"

Trakside laiendamine

Breketite laiendamise süntaks on kas jadaga või komadega eraldatud üksuste loend lokkis sulgudes "{}". Järjestuse algus- ja lõppüksused on eraldatud kahe punktiga "…".

Mõned näited:

Ülaltoodud näidetes loob kaja käsk stringide laiendamise abil stringid.

Kokkuvõte:

  • Regulaaravaldised on märkide komplekt, mida kasutatakse stringide mustrite kontrollimiseks
  • Neid nimetatakse ka "regexp" ja "regex"
  • Skriptide kirjutamiseks on oluline õppida regulaaravaldisi
  • Mõned regulaarsed põhiväljendid on:
Sümbol Kirjeldused
. asendab mis tahes märki
vastab stringi algusele
$ vastab stringi lõpule
  • Mõned laiendatud regulaaravaldised on:
Väljendus Kirjeldus
\ + Sobib ühe või mitme eelmise märgi esinemisega
\? Sobib nulli või ühe eelmise märgi esinemisega
  • Mõni intervalliga regulaaravaldis on:
Väljendus Kirjeldus
{n} Sobib täpselt eelmise tähemärgiga, mis kuvatakse n-korda
{n, m} Sobib eelmise tähemärgiga, mis ilmub 'n' korda, kuid mitte rohkem kui m
{n,} Sobib eelneva tähemärgiga ainult siis, kui see ilmub n-korda või rohkem
  • Trakside laiendamist kasutatakse stringide genereerimiseks. See aitab luua mitu stringi ühest.