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ä.