Android

Kuinka tarkistaa, sisältääkö merkkijono alijonoa bashissa

How To Make $900+ In 45 Mins As A Broke Beginner (Make Money Online)

How To Make $900+ In 45 Mins As A Broke Beginner (Make Money Online)

Sisällysluettelo:

Anonim

Yksi yleisimmistä toimista, kun työskentelet merkkijonoilla Bashissa, on selvittää, sisältääkö merkkijono toisen merkkijonon vai ei., näytämme sinulle useita tapoja tarkistaa, sisältääkö merkkijono alijonoa.

Jokerimerkkien käyttäminen

Helpoin lähestymistapa on ympäröidä alimerkkijono tähdellä jokerimerkkeillä (tähdellä) * ja verrata sitä merkkijonoon. Jokerimerkki on symboli, jota käytetään edustamaan nollaa, yhtä tai useampaa merkkiä.

Jos testi palaa true , alijono sisältyy merkkijonoon.

Seuraavassa esimerkissä käytämme if-käskyä ja tasa-arvooperaattoria ( == ) tarkistaaksesi, löytyykö alijono SUB merkkijonosta STR :

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi

Suoritettuaan skripti tulostaa:

It's there.

Case-operaattorin käyttäminen

If-lauseen sijasta voit myös käyttää tapauslausetta tarkistaaksesi, sisältääkö merkkijono toisen merkkijonon vai ei.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' case $STR in *"$SUB"*) echo -n "It's there.";; esac

Regex-operaattorin käyttäminen

Toinen vaihtoehto sen määrittämiseksi, tapahtuuko määritetty alijono merkkijonossa, on käyttää regex-operaattoria =~ . Kun tätä operaattoria käytetään, oikeaa merkkijonoa pidetään säännöllisenä lausekkeena.

Aika, jota seuraa tähti .* Vastaa nollaa tai enemmän esiintymiä, mikä tahansa merkki paitsi uuden rivin merkki.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi

Skripti kaikuu seuraavaa:

It's there.

Grepin käyttäminen

Grep-komentoa voidaan käyttää myös merkkijonojen löytämiseen toisesta merkkijonosta.

Seuraavassa esimerkissä välitämme merkkijonon $STR syötteenä grep: lle ja tarkistamme, löytyykö merkkijono $SUB syöttörivistä. Komento palaa true tai false tarpeen mukaan.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if grep -q "$SUB" <<< "$STR"; then echo "It's there" fi

-q asetus käskee grep: n olemaan hiljaa, jättämään tulosteen pois.

johtopäätös

Sen tarkistaminen, sisältääkö merkkijono alijonoa, on yksi bash-komentosarjojen perusteellisimmista ja yleisimmin käytetyistä toimista.

Kun olet lukenut tämän opetusohjelman, sinulla pitäisi olla hyvä käsitys siitä, kuinka testataan, sisältääkö merkkijono toista merkkijonoa. Voit käyttää testaamiseen myös muita komentoja, kuten awk tai sed .

bash terminaali