Linuxin säännöllisen lausekkeen opetusohjelma: Grep Regex -esimerkki

Sisällysluettelo:

Anonim

Mitä ovat Linuxin säännölliset lausekkeet?

Linuxin säännölliset lausekkeet ovat erikoismerkkejä, jotka auttavat etsimään tietoja ja vastaamaan monimutkaisia ​​malleja. Säännölliset lausekkeet lyhennetään nimellä 'regexp' tai 'regex'. Niitä käytetään monissa Linux-ohjelmissa, kuten grep, bash, rename, sed jne.

Säännöllisten lausekkeiden tyypit

Oppiaksemme ymmärtämisen helpottamiseksi erilaisia ​​Regex-tyyppejä yksitellen.

  • Perussäännölliset lausekkeet
  • Intervalli Säännölliset lausekkeet
  • Laajennetut säännölliset lausekkeet
  • Yhteenveto

Napsauta tätä, jos video ei ole käytettävissä

Perussäännölliset lausekkeet

Jotkut säännöllisesti käytetyistä säännöllisten lausekkeiden komennoista ovat tr, sed, vi ja grep. Alla on lueteltu joitain perussääntöjä.

Symboli Kuvaukset
. korvaa minkä tahansa merkin
vastaa merkkijonon alkua
$ vastaa merkkijonon loppua
* vastaa nollaa tai enemmän edellistä merkkiä
\ Edusta erikoismerkkejä
() Ryhmittää säännölliset lausekkeet
? Vastaavat täsmälleen yhden merkin

Katsotaanpa esimerkki.

Suorita kissanäyte nähdäksesi olemassa olevan tiedoston sisällön

Hae sisältöä, joka sisältää a-kirjaimen.

' ^ ' vastaa merkkijonon alkua. Etsitään sisältöä, joka ALKAA a: lla

Suodatetaan vain merkillä alkavat rivit. Rivit, jotka eivät sisällä alussa merkkiä "a", jätetään huomioimatta.

Katsotaanpa toinen esimerkki -

Valitse vain rivit, jotka päättyvät merkkiin t käyttämällä $

Intervalli Säännölliset lausekkeet

Nämä lausekkeet kertovat merkin esiintymien merkkijonosta. He ovat

Ilmaisu Kuvaus
{n}

Vastaa edellistä merkkiä, joka esiintyy tarkasti n kertaa

{n, m} Vastaa edeltävää merkkiä, joka esiintyy n kertaa, mutta enintään m
{n,} Vastaa edellistä merkkiä vain, kun se esiintyy n kertaa tai enemmän

Esimerkki:

Suodata kaikki rivit, jotka sisältävät merkin 'p'

Haluamme tarkistaa, että merkki 'p' esiintyy täsmälleen 2 kertaa merkkijonossa peräkkäin. Tätä varten syntaksin muoto olisi:

cat sample | grep -E p\{2}

Huomaa: Sinun on lisättävä -E näillä säännöllisillä lausekkeilla.

Laajennetut säännölliset lausekkeet

Nämä säännölliset lausekkeet sisältävät useamman kuin yhden lausekkeen yhdistelmiä. Jotkut niistä ovat:

Ilmaisu Kuvaus

\ +

Vastaa yhtä tai useampaa edellisen merkin esiintymää

\?

Vastaa nollaa tai yhtä edellisen merkin esiintymää

Esimerkki:

Haetaan kaikkia merkkejä 't'

Oletetaan, että haluamme suodattaa pois rivit, joissa merkki 'a' edeltää merkkiä 't'

Voimme käyttää komentoa kuten

cat sample|grep "a\+t"

Aaltosuojuksen laajennus

Aaltosulkeuden laajennuksen syntakse on joko sarja tai pilkuilla erotettu luettelo kiharoiden aaltosulkeissa "{}" olevia kohteita. Sarjan alku- ja loppukohdat erotetaan kahdella pisteellä "…".

Joitain esimerkkejä:

Edellä mainituissa esimerkeissä kaiku-komento luo merkkijonot aaltosuunnan laajennuksen avulla.

Yhteenveto:

  • Säännölliset lausekkeet ovat joukko merkkejä, joita käytetään merkkijonojen kuvioiden tarkistamiseen
  • Niitä kutsutaan myös 'regexp' ja 'regex'
  • On tärkeää oppia säännölliset lausekkeet komentosarjojen kirjoittamista varten
  • Joitakin säännöllisiä säännöllisiä lausekkeita ovat:
Symboli Kuvaukset
. korvaa minkä tahansa merkin
vastaa merkkijonon alkua
$ vastaa merkkijonon loppua
  • Joitakin laajennettuja säännöllisiä lausekkeita ovat:
Ilmaisu Kuvaus
\ + Vastaa yhtä tai useampaa edellisen merkin esiintymää
\? Vastaa nollaa tai yhtä edellisen merkin esiintymää
  • Joitakin aikavälin säännöllisiä lausekkeita ovat:
Ilmaisu Kuvaus
{n} Vastaa edellistä merkkiä, joka esiintyy tarkasti n kertaa
{n, m} Vastaa edeltävää merkkiä, joka esiintyy n kertaa, mutta enintään m
{n,} Vastaa edellistä merkkiä vain, kun se esiintyy n kertaa tai enemmän
  • Aaltosuunnan laajennusta käytetään merkkijonojen luomiseen. Se auttaa luomaan useita merkkijonoja yhdestä.