Alimerkkijonojen tarkistaminen Bash-skripteissä

Bash

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

  1. Kuinka tarkistan, sisältääkö merkkijono alimerkkijonon käyttämällä ?
  2. Voit tarkistaa, sisältääkö merkkijono alimerkkijonoa käyttämällä , voit käyttää komentoa:
  3. Voinko käyttää tarkistaaksesi alimerkkijonon?
  4. Kyllä, voit käyttää tarkistaaksesi alimerkkijonon komennolla:
  5. Mitä hyötyä käytöstä on yli ?
  6. tarjoaa tehokkaampia tekstinkäsittelyominaisuuksia ja voi suorittaa toimintoja kaavaosumien perusteella, mikä tekee siitä monipuolisemman kuin .
  7. Kuinka voin jättää kirjainkoon huomioimatta alimerkkijonoa haettaessa?
  8. Jos haluat jättää kirjainkoon huomioimatta alimerkkijonoa etsiessäsi, voit käyttää vaihtoehto kanssa :
  9. Onko mahdollista käyttää kanssa lausunnot bashissa?
  10. 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.