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
Otsige sisu, mis sisaldab tähte "a".
"^' vastab stringi algusele. Otsime sisu, mis ALGAB tähega a
Filtreeritakse ainult tähemärgiga algavaid ridu. Neid ridu, mis ei sisalda alguses märki "a", ignoreeritakse.
Vaatame teist näidet -
Valige ainult need read, mis lõpevad t kasutades $
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"
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}
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"
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"
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:
Ü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.