Hvordan bruke bash = ~ regex for å matche flere strenger

Hvordan bruke bash = ~ regex for å matche flere strenger
En av de kraftige egenskapene ved bash er den. I denne artikkelen vil vi utforske hvordan du bruker bash = ~ operatør med vanlige uttrykk for å matche flere strenger.

Hva er = ~ regex i bash

Bash = ~ operatøren lar oss matche et vanlig uttrykk mot en streng og den returnerer sant hvis uttrykket samsvarer med hele strengen, i det andre tilfellet returnerer det falskt.

Bruker bash = ~ regex for å matche flere strenger

I bash -skripting brukes "=" -operatøren til å matche et vanlig uttrykk mot en streng. Med Regex kan du matche en enkelt streng eller et mønster av strenger. Imidlertid er det situasjoner der du trenger å matche flere strenger i en enkelt operasjon, så her er syntaks for å matche flere strenger:

[[$= ~ $]]

For å illustrere videre har jeg gitt et eksempel på bashskriptet som inneholder to strenger og fem kamper som jeg vil lage, nedenfor er det respektive skriptet:

#!/bin/bash
myString = "Hei og velkommen til Linuxhint.com "
MyString = "Hilsen og velkommen til Linux Mint"
Patterns = ("Hello" "Welcome" "Linuxhint" "Mint" "Apple")
Matched1 = 0
Matched2 = 0
for mønster i "$ mønstre [@]"
gjøre
hvis [[$ myString = ~ $ mønster]]; deretter
Ekko "String1 samsvarer med mønsteret: $ mønster"
Matched1 = 1
fi
hvis [[$ myString = ~ $ mønster]]; deretter
Ekko "String2 samsvarer med mønsteret: $ mønster"
Matched2 = 1
fi
Ferdig

Denne koden definerer to strenger MyString og MyString, og et array -mønster som inneholder mønstrene som passer. Den løkker deretter gjennom mønstrene og sjekker om hver og en finnes i MyString og MyString ved å bruke IF -utsagn med = ~ operatøren. Hvis det finnes en kamp i en streng, viser koden en melding angående mønsterkamp, ​​mens hvis det ikke finnes noen treff i en streng, vil koden skrive ut en melding som vil indikere at strengen ikke samsvarer med noen av de gitte mønstrene.

Den matchede = 1 uttalelsen inne i for -loopen brukes til å indikere at det nåværende mønsteret som blir sjekket er funnet i inngangsstrengen.Hvis den matchede variabelen forblir 0 etter å ha sjekket alle mønstre, betyr det at ingen av mønstrene ble funnet i inngangsstrengen, og her er utgangen for koden:

Konklusjon

Bash Scripting kommer med en rekke alternativer for å automatisere oppgavene. Bash = ~ operatør med vanlige uttrykk brukes til å matche flere strenger, og denne guiden illustrerer hvordan du bruker denne operatøren ved hjelp av et eksempel som samsvarer med et sett med prøver med to strenger.