Linuxin säännöllisten lausekkeiden opetusohjelma: Grep Regex -esimerkki
Mitä ovat Linuxin säännölliset lausekkeet?
Linuxin säännölliset lausekkeet ovat erikoismerkkejä, jotka auttavat etsimään tietoja ja yhdistämään monimutkaisia kuvioita. Säännölliset lausekkeet lyhennetään nimellä "regulexp" tai "regex". Niitä käytetään monissa Linux-ohjelmissa, kuten grep, bash, uudelleennimeäminen, sed jne.
Säännöllisten lausekkeiden tyypit
Ymmärtämisen helpottamiseksi meidän on opittava erityyppiset Regexit yksitellen.
Napauta tätä jos video ei ole saatavilla
Perussäännölliset lausekkeet
Joitakin yleisesti käytettyjä komentoja säännöllisillä lausekkeilla ovat tr, sed, vi ja grep. Alla on lueteltu joitain perussäännöstöistä.
Symboli | Descriptionit |
---|---|
. | korvaa minkä tahansa merkin |
^ | vastaa merkkijonon alkua |
$ | vastaa merkkijonon loppua |
* | vastaa nollaa tai useampaa kertaa edellistä merkkiä |
\ | Edustaa erikoismerkkejä |
() | Ryhmittelee säännöllisiä lausekkeita |
? | Vastaa täsmälleen yhtä hahmoa |
Katsotaanpa esimerkki.
Suorita kissanäyte nähdäksesi olemassa olevan tiedoston sisällön
Hae sisältöä, joka sisältää kirjaimen "a".
"^' vastaa merkkijonon alkua. Etsitään sisältöä, joka ALKAA kirjaimella a
Vain merkillä alkavat rivit suodatetaan. Rivit, jotka eivät sisällä merkkiä 'a' alussa ohitetaan.
Katsotaanpa toista esimerkkiä -
Valitse vain ne rivit, joiden lopussa on t $
Interval Säännölliset lausekkeet
Nämä lausekkeet kertovat meille merkin esiintymien lukumäärästä merkkijonossa. He ovat
Ilmaisu | Tuotetiedot |
---|---|
{n} | Vastaa täsmälleen edellistä merkkiä, joka esiintyy 'n' kertaa |
{n,m} | Vastaa edellistä merkkiä, joka esiintyy "n" kertaa, mutta enintään m |
{n, } | Vastaa edellistä merkkiä vain, kun se esiintyy "n" kertaa tai useammin |
Esimerkiksi:
Suodata pois kaikki rivit, jotka sisältävät merkin "p"
Haluamme tarkistaa, että merkki 'p' esiintyy merkkijonossa täsmälleen 2 kertaa peräkkäin. Tätä varten syntaksi olisi:
cat sample | grep -E p\{2}
Huomautus: Sinun on lisättävä -E näihin säännöllisiin lausekkeisiin.
Laajennetut säännölliset lausekkeet
Nämä säännölliset lausekkeet sisältävät useamman kuin yhden lausekkeen yhdistelmiä. Jotkut niistä ovat:
Ilmaisu | Tuotetiedot |
---|---|
\+ | Vastaa yhtä tai useampaa edellisen merkin esiintymää |
\? | Vastaa edellisen merkin nollaa tai yhtä esiintymää |
Esimerkiksi:
Etsitään kaikkia merkkejä 't'
Oletetaan, että haluamme suodattaa pois rivit, joissa merkki "a" edeltää merkkiä "t"
Voimme käyttää komentoja kuten
cat sample|grep "a\+t"
Ahdin laajennus
Aaltosulkeiden laajennuksen syntaksi on joko sarja tai pilkuilla eroteltu luettelo kohteista, jotka sijaitsevat kiharoiden aaltosulkeiden "{}" sisällä. Sarjan aloitus- ja loppukohdat erotetaan kahdella pisteellä "...".
Joitain esimerkkejä:
Yllä olevissa esimerkeissä echo-komento luo merkkijonoja aaltosulkeiden laajennuksen avulla.
Yhteenveto:
- Säännölliset lausekkeet ovat merkkijoukkoa, jota käytetään merkkijonojen kuvioiden tarkistamiseen
- Niitä kutsutaan myös "säännöllisiksi lausekkeiksi" ja "säännöllisiksi lauseiksi".
- On tärkeää oppia säännölliset lausekkeet skriptien kirjoittamista varten
- Jotkut perussäännölliset lausekkeet ovat:
Symboli | Descriptionit |
---|---|
. | korvaa minkä tahansa merkin |
^ | vastaa merkkijonon alkua |
$ | vastaa merkkijonon loppua |
- Jotkut laajennetut säännölliset lausekkeet ovat:
Ilmaisu | Tuotetiedot |
---|---|
\+ |
Vastaa yhtä tai useampaa edellisen merkin esiintymää |
\? | Vastaa edellisen merkin nollaa tai yhtä esiintymää |
- Jotkut intervallisäännölliset lausekkeet ovat:
Ilmaisu | Tuotetiedot |
---|---|
{n} | Vastaa täsmälleen edellistä merkkiä, joka esiintyy 'n' kertaa |
{n,m} | Vastaa edellistä merkkiä, joka esiintyy "n" kertaa, mutta enintään m |
{n, } | Vastaa edellistä merkkiä vain, kun se esiintyy "n" kertaa tai useammin |
- Aaltosulkeiden laajennusta käytetään merkkijonojen luomiseen. Se auttaa luomaan useita merkkijonoja yhdestä.