Linuxin säännöllisten lausekkeiden opetusohjelma: Grep Regex -esimerkki
⚡ Älykäs yhteenveto
Linuxin säännölliset lausekkeet ovat erikoismerkkijonoja, jotka etsivät dataa ja yhdistävät monimutkaisia kuvioita eri työkaluissa, kuten grep, sed ja vi. Ne käyttävät perus-, intervalli-, laajennettuja ja aaltosulkeiden laajennusmuotoja tekstin suodattamiseen tarkasti.

Säännölliset lausekkeet ovat yksi tehokkaimmista ominaisuuksista Linux tekstityökalut, joiden avulla voit yhdistää, suodattaa ja muuntaa tietoja kompaktien kuvioiden avulla. Tällä sivulla selitetään perus-, väli- ja laajennetut muodot sekä aaltosulkeiden laajennus toimivien grep-esimerkkien avulla.
Mitä ovat Linuxin säännölliset lausekkeet?
Linuxin säännölliset lausekkeet ovat erikoismerkkejä, jotka auttavat hakemaan tietoja ja löytämään monimutkaisia kuvioita. Säännölliset lausekkeet lyhennetään muotoon 'regexp' tai 'regex'. Niitä käytetään monissa Linux-ohjelmissa, kuten grep, bash, rename, sed ja paljon muuta.
Säännöllisten lausekkeiden tyypit
Ymmärryksen helpottamiseksi opetellaan erityyppiset säännölliset lausekkeet yksi kerrallaan. Tämä sivu käsittelee perus-, väli- ja laajennettuja säännöllisiä lausekkeita ja päättyy aaltosulkeiden laajennukseen.
Perussäännölliset lausekkeet
Joitakin yleisesti käytettyjä komentoja, jotka toimivat säännöllisten lausekkeiden kanssa, ovat tr, sed, vi, ja grep. Alla olevassa taulukossa on lueteltu joitakin perussäännöllisiä lausekkeita.
| Symboli | Tuotetiedot |
|---|---|
| . | Korvaa minkä tahansa merkin |
| ^ | Vastaa merkkijonon alkua |
| $ | Vastaa merkkijonon loppua |
| * | Vastaa edellistä merkkiä nolla kertaa tai useammin |
| \ | Edustaa erikoismerkkejä |
| () | Ryhmittelee säännöllisiä lausekkeita |
| ? | Vastaa täsmälleen yhtä merkkiä |
Katsotaanpa esimerkkiä. Suorita ensin cat sample näyttääksesi olemassa olevan tiedoston sisällön, kuten alla on esitetty.
Seuraavaksi etsi sisältöä, joka sisältää kirjaimen 'a'. Alla olevassa kuvakaappauksessa grep palauttaa kaikki rivit, jotka sisältävät kirjaimen 'a'.
Sirkkumerkki '^' etsii merkkijonon alkua. Alla oleva esimerkki etsii sisältöä, joka alkaa kirjaimella 'a'.
Vain rivit, jotka alkavat merkillä, suodatetaan. Rivit, joiden alussa ei ole merkkiä 'a', ohitetaan.
Katsotaanpa toista esimerkkiä. Alla oleva kuvakaappaus näyttää jälleen esimerkkitiedoston sisällön ennen rivin lopun mukaan suodattamista.
Valitse vain ne rivit, jotka päättyvät kirjaimeen 't', käyttämällä '$'-ankkuria alla olevan kuvan mukaisesti.
Interval Säännölliset lausekkeet
Nämä lausekkeet määrittävät merkin esiintymien määrän merkkijonossa. Ne on lueteltu alla.
| 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 |
Suodata esimerkiksi pois kaikki rivit, jotka sisältävät merkin 'p'. Alla oleva kuvakaappaus näyttää vastaavat rivit.
Tarkista nyt, että merkki 'p' esiintyy merkkijonossa täsmälleen kaksi kertaa peräkkäin. Tämän syntaksi on:
cat sample | grep -E p\{2}
Väliaikaottelun tulos näkyy alla.
Huomautus: Sinun on lisättävä -E näihin säännöllisiin lausekkeisiin.
Laajennetut säännölliset lausekkeet
Nämä säännölliset lausekkeet yhdistävät useamman kuin yhden lausekkeen. Joitakin niistä ovat:
| Ilmaisu | Tuotetiedot |
|---|---|
| \+ | Vastaa yhtä tai useampaa edellisen merkin esiintymää |
| \? | Vastaa edellisen merkin nollaa tai yhtä esiintymää |
Esimerkiksi, hae kaikkia merkin 't' esiintymiä. Alla oleva kuvakaappaus näyttää tuloksen.
Oletetaan, että haluat suodattaa pois rivit, joissa merkki 'a' edeltää merkkiä 't'. Voit käyttää seuraavanlaista komentoa:
cat sample|grep "a\+t"
Tuloste näkyy seuraavassa kuvakaappauksessa.
Ahdin laajennus
Aaltosulkeiden laajennuksen syntaksi on joko sarja tai pilkuilla erotettu luettelo kohteista aaltosulkeiden '{}' sisällä. Sarjan aloitus- ja lopetuskohdat erotetaan kahdella pisteellä '..'.
Joitakin esimerkkejä on esitetty alla.
Yllä olevissa esimerkeissä echo-komento luo merkkijonoja käyttämällä aaltosulkujen laajennusta, jolloin yhdestä kuviosta saadaan useita merkkijonoja.










