- Leikata
- Awk
- Sed
Tässä artikkelissa on useita esimerkkejä, joiden avulla voit paremmin ymmärtää käsitteen saada alimerkkijono tietyn merkin jälkeen.
Seuraa tässä opetusohjelmassa annettuja esimerkkejä kirjautumalla ensin Linux-järjestelmään ja avaamalla pääte. Luo seuraavaksi uusi tiedosto nimeltä "input".sh.”
Esimerkki 1: Leikatun avainsanan käyttö
Avaa tiedosto “input.sh ”kotihakemistosta ja kirjoita seuraava koodi tiedostoon. Ensimmäisessä esimerkissämme määritämme merkkijonon nimeltä "merkkijono", jossa on jonkin verran merkkejä ja numeroita. Käytämme avainsanaa "cut" tässä koodissa, jota seuraa "-d" saadaksesi tietyn merkkijonon alimerkkijonon. Sen jälkeen annamme tarkan merkin käänteisissä pilkuissa muodossa "-", jotta alimerkkijono etsitään tämän erikoismerkin jälkeen.
Tässä on tärkeää ymmärtää osajonon muodostamisen pääidea. Sinun on muistettava, kuinka avainsana "f" lisätään käytettäessä "cut" -komentoa. Avainsanaa "f" voidaan käyttää eri tavoin luomaan alimerkkijonoa, joten katsokaamme tätä menetelmää.
-f2: ensimmäisen erikoismerkin "-" jälkeen ja ennen seuraavaa "-"
Tämä tarkoittaa, että sen tulisi näyttää alimerkkipalkki, koska se sijaitsee ensimmäisen merkin "-" jälkeen ja ennen seuraavaa "-" merkkiä.
Tämän bash-tiedoston suorittamisen jälkeen saimme osamerkkijonon "palkin", kuten odotimme.
Tarkistamme nyt saman esimerkin avainsanalle “-f2-”. Päivitä tiedosto alla olevien ohjeiden mukaisesti.
-f2-: ensimmäisen erikoismerkin "-" seuraava teksti riippumatta siitä, onko "-" merkkejä useita.
Tämä tarkoittaa, että se näyttää alimerkkijonon "bar-123", koska se sijaitsee ensimmäisen "-" merkin jälkeen riippumatta siitä, onko merkkejä "-".
Tämän bash-tiedoston suorittamisen jälkeen saimme alaosan "bar-123", koska se sijaitsee ensimmäisen "-" merkin jälkeen.
Otamme nyt saman ehdon, pieniä muutoksia merkkijonoon ja merkkeihin. Olemme määrittäneet uuden merkkijonon "str" ja antaneet sille toisen arvon. Tässä esimerkissä ”i” on erikoismerkki, jota haetaan alkuperäisestä merkkijonosta, ja tästä merkistä lähtien luomme alimerkkijonon. Tässä tapauksessa olemme käyttäneet:
-f2: luoda alimerkkijono, joka seuraa ensimmäistä erikoismerkkiä "i" ja ennen seuraavaa merkkiä "i".”
Tämä tarkoittaa, että sen tulisi näyttää alimerkkijono "ltEff = str", koska se sijaitsee ensimmäisen "i" -merkin jälkeen.
Kun tiedosto suoritetaan, alimerkkijono saadaan ennen seuraavaa “i” ja ensimmäisen ”i” jälkeen.”
Voit kokeilla tätä menetelmää samalla merkkijonorivillä, kuten alla olevassa kuvassa näkyy:
Se näyttää saman tuloksen kuin yllä.
Nyt käytämme avainsanaa "leikkaus" muuttamatta vain f-ehtoa yhdellä rivillä. Käytämme tässä tapauksessa merkintää "f1" muuttamaan alimerkkijonon lopputulosta. Käytämme:
-f1: luoda alimerkkijono ennen ensimmäistä erikoismerkkiä “i.”
Tämä päättelee, että sen tulisi näyttää alimerkkijono "GenF", koska se sijaitsee ennen erikoismerkkiä "i".”
Alla oleva tulos on odotettua.
Täällä käytämme samaa esimerkkiä vähän muutoksia. Olemme käyttäneet siihen vanhaa menetelmää.
Tämän komentosarjan tulos on sama kuin yllä.
Seuraavaksi, käytämme samaa edellistä esimerkkiä, käytämme avainsanaa "leikkaus" samalla kun muutamme avainsanaa "f"."Tässä käytämme" f3 ": ää muuttamaan alimerkkijonon lopputulosta, ja käytämme:
-f3: luoda alimerkkijono seuraavan erikoismerkin “i.”
Tämä osoittaa, että sen tulisi näyttää alaotsikko “ng.-01234 ”, koska se sijaitsee seuraavan erikoismerkin“ i.”
Suoritamme saman koodin Bash-komennolla. Näet uuden tuloksen alla:
Esimerkki 2: Awk-avainsanan käyttö
Avaa tiedosto “input.sh ”ja kirjoita liitteenä oleva koodi tiedostoon. Tässä olemme julistaneet kaikulausekkeen merkkijonolla "foo-bar-123" käyttämällä "awk" -avainsanaa. Tulostustermiä seuraa avainsana “-F-”. Tämä luo alimerkkijonon seuraavan erikoismerkin, joka on “123”, jälkeen ja tulostaa sen. Erikoismerkkiä ei tarvitse määritellä tässä tapauksessa.
Seuraava on edellä mainittu tuotos ”123”.
Esimerkki 3: Sed-avainsanan käyttö
Tässä esimerkissä päivitämme saman tiedoston alla olevalla koodilla. Tässä tapauksessa käytetään avainsanaa "sed" sanan "cut" tai "awk" sijaan.”
Tämä koodi näyttää samanlaisen tuotoksen kuin edellinen esimerkki.
Esimerkki 4: Erikoismerkkien käyttö
Seuraavassa esimerkissä päivitämme saman tiedoston alla olevalla koodilla. Tässä määritellään kolme merkkijonoa: "merkkijono", "searchstr" ja "temp.”Koodissa on” $ string% $ searchstr * ”. "%" Etsii muuttujan "searchstr" arvoa, joka on "ja", ja poistaa kaiken tämän erikoismuuttujan jälkeen alkuperäisestä merkkijonosta. Jäljellä oleva teksti tallennetaan muuttujaan "temp.”Nyt tulostetaan muuttuja” temp ”ja teksti” Tämä on uusi merkkijono.”
Jos suoritamme yllä olevan koodin, alkuperäinen merkkijono tulostetaan ensin; sitten uusi alaosa tulostetaan.
Ottaen saman esimerkin pienellä päivityksellä käytämme merkkijonoa "# *", jotta kaikki "searchstr" -arvon, joka on "ja", seuraava lisätään muuttujaan "temp".”
Kun tarkistat sen Bashissa, huomaat, että vanha merkkijono tulostuu ensin. Sen jälkeen, koska "se poistetaan" on muuttujan "temp" uusi arvo, siksi se tulostetaan ensin seuraavalla rivillä tekstin "Tämä on uusi merkkijono" kanssa.”
Johtopäätös
Jos haluat saada alimerkkijonon mistä tahansa merkkijonosta käyttämällä siinä jotain erikoismerkkiä, voit tehdä sen käyttämällä yllä annettuja menetelmiä.