Johdatus Bashin merkkijonojen hallintaan
Bash-skriptien kanssa työskennellessä on tavallista kohdata tilanteita, joissa sinun on tarkistettava, sisältääkö merkkijono tietyn alimerkkijonon. Tämä on perustehtävä monissa komentosarjaskenaarioissa, kuten syötetietojen jäsentämisessä, merkkijonojen vahvistamisessa tai sisällön suodattamisessa tiettyjen kriteerien perusteella.
Tässä artikkelissa tutkimme erilaisia menetelmiä tämän saavuttamiseksi Bashissa, mukaan lukien ehdollisten lausekkeiden ja komentojen, kuten "echo" ja "grep", käyttö. Keskustelemme myös tehokkaimmista ja luettavimmista tavoista tehdä komentosarjoistasi ylläpidettävämpiä ja vähemmän alttiita virheille.
Komento | Kuvaus |
---|---|
[[ ]] | Ehdollinen lauseke, jota käytetään merkkijonojen ja muiden ehtojen testaamiseen Bashissa. |
* | Jokerimerkki, jota käytetään edustamaan mitä tahansa merkkimäärää merkkijonokuvion vastaavuudessa. |
echo | Komento, jota käytetään argumenttina välitetyn tekstirivin tai merkkijonon näyttämiseen. |
grep | Komentorivityökalu, jolla etsitään säännöllistä lauseketta vastaavia rivejä pelkästä tekstistä. |
-q | Vaihtoehto grepille, joka vaimentaa normaalin lähdön ja palauttaa vain poistumistilan. |
case | Ehdollinen lauseke, jota käytetään vastaamaan kuvioita Bashissa. |
;; | Erotin, jota käytetään tapauslausekkeissa erilaisten kuviotoimintojen erottamiseen. |
Alimerkkijonojen tarkistuksen ymmärtäminen Bashissa
Ensimmäisessä käsikirjoituksessa käytämme tarkistaaksesi, sisältääkö merkkijono tietyn alimerkkijonon. Määrittelemme päämerkkijonon ja alimerkkijonon ja käytämme sitten konstrukti, joka mahdollistaa edistyneet merkkijonovertailut. Kiinnikkeiden sisällä käytämme jokerimerkki edustamaan mitä tahansa merkkejä ennen ja jälkeen osamerkkijonoa. Jos ehto on tosi, komentosarja tulostaa "Se on siellä!"; muuten se tulostaa "Se ei ole siellä!". Tämä menetelmä on tehokas ja käyttää Bashin sisäänrakennettuja ominaisuuksia kuvioiden yhteensovittamiseen.
Toinen kirjoitus käyttää ja komentoja saavuttaakseen saman tuloksen. Määrittelemme jälleen päämerkkijonon ja alimerkkijonon ja käytämme sitten tulostaaksesi päämerkkijonon ja ohjataksesi sen grep käyttämällä mahdollisuus vaimentaa normaali lähtö. etsii alimerkkijonoa päämerkkijonosta. Jos osamerkkijono löytyy, komentosarja tulostaa "Se on siellä!"; jos ei, se tulostaa "Se ei ole siellä!". Tämä lähestymistapa hyödyntää tehokkaita tekstihakuominaisuuksia , mikä tekee siitä sopivan skripteille, joissa monimutkaisia tekstimalleja on sovitettava yhteen.
Bash-merkkijonojen edistyneiden toimintojen tutkiminen
Kolmas komentosarja käyttää a lauseke alimerkkijonon olemassaolon tarkistamiseksi. Päämerkkijonon ja alimerkkijonon määrittämisen jälkeen lause vastaa päämerkkijonoa eri kuvioita vastaan. Jos alimerkkijono on läsnä, suoritetaan vastaava toimenpide, joka tulostaa "Se on siellä!". Jos alimerkkijonoa ei löydy, oletustoiminto tulostaa "Se ei ole olemassa!". Tämä menetelmä on erityisen hyödyllinen, kun tarkistettavia kuvioita on useita, kuten lauseke voi käsitellä monimutkaista haarautumislogiikkaa puhtaammin kuin useita if-else lausunnot.
Kaiken kaikkiaan jokainen näistä menetelmistä tarjoaa tavan määrittää, sisältääkö merkkijono tietyn alimerkkijonon Bashissa. Menetelmän valinta riippuu tarvittavan merkkijonovastaavuuden monimutkaisuudesta ja komentosarjan erityisvaatimuksista. Käyttämällä jokerimerkeillä on suoraviivaista ja tehokasta yksinkertaisiin tarkistuksiin yhdistämisen aikana ja tarjoaa tehokkaamman kuvion sovituksen. The case lauseke puolestaan on ihanteellinen useiden täsmäysehtojen käsittelemiseen jäsennellyllä tavalla.
Ehdollisten lausekkeiden käyttäminen alimerkkijonojen tarkistamiseen Bashissa
Bash-komentosarjamenetelmä
#!/bin/bash
# Define the main string
string="My string"
# Define the substring to search for
substring="foo"
# Check if the substring is present in the main string
if [[ "$string" == *"$substring"* ]]; then
echo "It's there!"
else
echo "It's not there!"
fi
Echon ja Grepin käyttäminen alimerkkijonojen tunnistamiseen Bashissa
Echo- ja Grep-komentojen yhdistäminen
#!/bin/bash
# Define the main string
string="My string"
# Define the substring to search for
substring="foo"
# Use echo and grep to check if the substring is present
if echo "$string" | grep -q "$substring"; then
echo "It's there!"
else
echo "It's not there!"
fi
Tapauslausekkeiden käyttäminen osamerkkijonojen tunnistamiseen Bashissa
Bash-komentosarja tapauslausekkeilla
#!/bin/bash
# Define the main string
string="My string"
# Define the substring to search for
substring="foo"
# Use case statement to check for the substring
case "$string" in
*"$substring"*)
echo "It's there!"
;;
*)
echo "It's not there!"
;;
esac
Kehittyneet menetelmät merkkijonojen rajoittamiseen Bashissa
Perusmenetelmien lisäksi, joilla tarkistetaan, sisältääkö merkkijono alimerkkijonoa Bashissa, on olemassa kehittyneempiä tekniikoita, jotka voivat olla hyödyllisiä eri skenaarioissa. Yksi tällainen menetelmä sisältää säännöllisten lausekkeiden käyttämisen komento. on tehokas ohjelmointikieli kuvioiden skannaukseen ja käsittelyyn. Käyttämällä , voit suorittaa monimutkaisia merkkijonotoimintoja joustavammin. Voit esimerkiksi käyttää awk etsiäksesi alimerkkijonoa merkkijonosta ja suorittaaksesi toimintoja vastaavuuden perusteella.
Toinen edistynyt tekniikka sisältää komento, joka tarkoittaa stream editoria. on hyödyllinen tekstin jäsentämiseen ja muuntamiseen tietovirrassa tai tiedostossa. Voit käyttää Etsiäksesi osamerkkijonoa ja suorittaaksesi korvauksia tai muita toimintoja vastaavalle tekstille. Nämä edistyneet menetelmät, vaikka ne ovatkin monimutkaisempia, tarjoavat tehokkaita ominaisuuksia tekstinkäsittelyyn Bash-skripteissä, mikä tekee niistä korvaamattomia tehtävissä, jotka vaativat hienostuneita merkkijonojen käsittelyä.
Usein kysyttyjä kysymyksiä Bashin merkkijonojen suojauksesta
- Kuinka tarkistan, sisältääkö merkkijono alimerkkijonon käyttämällä ?
- Voit tarkistaa, sisältääkö merkkijono alimerkkijonoa käyttämällä , voit käyttää komentoa:
- Voinko käyttää tarkistaaksesi alimerkkijonon?
- Kyllä, voit käyttää tarkistaaksesi alimerkkijonon komennolla:
- Mitä hyötyä käytöstä on yli ?
- tarjoaa tehokkaampia tekstinkäsittelyominaisuuksia ja voi suorittaa toimintoja kaavaosumien perusteella, mikä tekee siitä monipuolisemman kuin .
- Kuinka voin jättää kirjainkoon huomioimatta alimerkkijonoa haettaessa?
- Jos haluat jättää kirjainkoon huomioimatta alimerkkijonoa etsiessäsi, voit käyttää vaihtoehto kanssa :
- Onko mahdollista käyttää kanssa lausunnot bashissa?
- Kyllä, voit käyttää regexiä kanssa lausekkeet Bashissa käyttämällä operaattori:
Viimeisiä ajatuksia bashin kielten hillitsemisestä
Sen määrittäminen, sisältääkö merkkijono alimerkkijonon Bashissa, on yleinen tehtävä, joka voidaan suorittaa useilla menetelmillä, mukaan lukien ehdolliset käskyt, grep-komennot ja case-lauseet. Jokainen menetelmä tarjoaa ainutlaatuisen lähestymistavan ongelman ratkaisemiseen, joten voit valita sopivimman omien tarpeidesi perusteella. Hallitsemalla näitä tekniikoita voit parantaa Bash-skriptiesi tehokkuutta ja luettavuutta.