Linuxi regulaaravaldise õpetus: Grep Regexi näide
⚡ Nutikas kokkuvõte
Linuxi regulaaravaldised on spetsiaalsed märgijadad, mis otsivad andmeid ja sobitavad keerulisi mustreid sellistes tööriistades nagu grep, sed ja vi, kasutades teksti täpseks filtreerimiseks põhi-, intervall-, laiendatud ja sulgudega laiendamise vorme.

Regulaaravaldised on üks võimsamaid omadusi Linux Tekstitööriistad, mis võimaldavad teil andmeid kompaktsete mustrite abil sobitada, filtreerida ja teisendada. See leht selgitab põhi-, intervall- ja laiendatud vorme ning sulgude laiendamist koos töötatud grep-näidetega.
Mis on Linuxi regulaaravaldised?
Linuxi regulaaravaldised on erimärgid, mis aitavad otsida andmeid ja leida keerulisi mustreid. Regulaaravaldisi lühendatakse kui 'regexp' või 'regex'. Neid kasutatakse paljudes Linuxi programmides, näiteks grep, bash, rename, sed ja palju muud.
Regulaaravaldiste tüübid
Lihtsama arusaamise huvides õpime erinevaid regulaaravaldiste tüüpe ükshaaval. See leht hõlmab põhi-, intervall- ja laiendatud regulaaravaldisi ning lõpeb sulgude laiendamisega.
Põhilised Regulaaravaldised
Mõned levinumad käsud, mis töötavad regulaaravaldistega, on tr, sed, vija grep. Allolev tabel loetleb mõned põhilised regulaaravaldised.
| Sümbol | Kirjeldus |
|---|---|
| . | Asendab mis tahes tähemärki |
| ^ | Sobib stringi algusega |
| $ | Sobib stringi lõpuga |
| * | Vastab eelnevale märgile null või enam korda |
| \ | Esindab erimärke |
| () | Rühmitab regulaaravaldisi |
| ? | Vastab täpselt ühele tähemärgile |
Vaatame näidet. Kõigepealt käivitage olemasoleva faili sisu kuvamiseks käsk cat sample, nagu allpool näidatud.
Järgmisena otsi sisu, mis sisaldab tähte 'a'. Allolev ekraanipilt näitab, kuidas grep tagastab iga rea, mis sisaldab tähte 'a'.
Sümbol '^' vastab stringi algusele. Allolev näide otsib sisu, mis algab tähega 'a'.
Filtreeritakse ainult read, mis algavad selle märgiga. Ridasid, mille alguses ei ole märki 'a', ignoreeritakse.
Vaatame teist näidet. Allolev ekraanipilt näitab taas näidisfaili sisu enne rea lõpu järgi filtreerimist.
Valige ainult need read, mis lõpevad tähega 't', kasutades ankrut '$', nagu allpool näidatud.
Intervall Regulaaravaldised
Need avaldised määravad märgi esinemiste arvu stringis. Need on loetletud allpool.
| 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äiteks filtreerige välja kõik read, mis sisaldavad märki 'p'. Allolev ekraanipilt näitab sobivaid ridu.
Nüüd kontrollige, et märk 'p' esineb stringis täpselt kaks korda järjest. Selle süntaks on:
cat sample | grep -E p\{2}
Intervallimatši tulemus on näidatud allpool.
Märkus. Nende regulaaravaldistega peate lisama -E.
Laiendatud regulaaravaldised
Need regulaaravaldised ühendavad mitu avaldist. 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äiteks otsige kõiki tähe 't' esinemisjuhte. Allolev ekraanipilt näitab tulemust.
Oletame, et soovite filtreerida välja read, kus tähele 't' eelneb märk 'a'. Võite kasutada järgmist käsku:
cat sample|grep "a\+t"
Väljund on näidatud järgmisel ekraanipildil.
Trakside laiendamine
Sulgude laiendamise süntaks on kas jada või komadega eraldatud elementide loend looksulgude '{}' vahel. Jada algus- ja lõpp-elemendid eraldatakse kahe punktiga '..'.
Mõned näited on toodud allpool.
Ülaltoodud näidetes loob käsk echo stringe sulgude laiendamise abil, luues ühest mustrist mitu stringi.










