Säännöllisten lausekkeiden käyttö

Bash:
Säännöllisten lausekkeiden käyttö

Kuinka:

Perusmallin Vastaavuus

Löytääksesi, vastaako merkkijonoa malli, voit käyttää grep-komentoa, komentorivin työkalua, joka etsii tavallisen tekstin datajoukoista rivejä, jotka vastaavat säännöllistä lauseketta:

echo "Hei, Maailma!" | grep -o "Maailma"
# Tuloste: Maailma

Tietyn Datan Poimiminen

Poimiaksesi datan osia, jotka vastaavat regex-mallejasi, voit käyttää -o-vaihtoehtoa yhdessä grep-komentojen kanssa:

echo "Virhe: Tiedostoa ei löydy" | grep -oE "[A-Za-z]+:"
# Tuloste: Virhe:

Säännöllisten Lausekkeiden Käyttö sed-komentojen kanssa

sed (stream editor) on tehokas työkalu tekstin jäsentämiseen ja muokkaamiseen. Näin voit käyttää sed-komentoa regexin kanssa korvataksesi tekstiä:

echo "Bash on mahtava" | sed -e 's/mahtava/upea/'
# Tuloste: Bash on upea

Mallien Vastaavuus Ehdollisissa Lauseissa

Bash tukee myös regexiä suoraan ehdollisissa lausunnoissa:

[[ "https://esimerkki.com" =~ ^https?:// ]] && echo "URL on validi" || echo "URL on invalidi"
# Tuloste: URL on validi

Edistynyt Mallien Vastaavuus ja Manipulaatio awk:n avulla

awk on toinen tekstinkäsittelytyökalu, joka tukee monimutkaisempaa datan poimintaa ja manipulointia. Se voi olla hyödyllinen työskenneltäessä rakenteisen tekstidatan, kuten CSV-tiedostojen kanssa:

echo -e "ID,Nimi,Ikä\n1,John,22\n2,Jane,24" | awk -F, '$3 > 22 {print $2 " on vanhempi kuin 22."}'
# Tuloste: Jane on vanhempi kuin 22.

Vaikka Bashin sisäänrakennetut regex-toiminnot kattavat monia käyttötapauksia, erittäin edistyneitä regex-operaatioita varten saattaa olla hyödyllistä käyttää yhdistelmää Bash-skripteistä perl- tai python-skriptien kanssa, koska nämä kielet tarjoavat voimakkaita regex-kirjastoja (esim. re Pythonissa). Yksinkertainen esimerkki Pythonilla:

echo "Taltioi tämä 123" | python3 -c "import sys; import re; print(re.search('(\d+)', sys.stdin.read()).group(0))"
# Tuloste: 123

Näiden ohjelmointikielten tarvittaessa sisällyttäminen voi auttaa sinua hyödyntämään regexin täyttä voimaa Bash-skripteissäsi.