Att använda reguljära uttryck

Bash:
Att använda reguljära uttryck

Hur man gör:

Grundläggande mönstermatchning

För att hitta om en sträng matchar ett mönster kan du använda grep, ett kommandoradsverktyg för att söka i vanliga textdatauppsättningar efter rader som matchar ett reguljärt uttryck:

echo "Hej, Världen!" | grep -o "Världen"
# Utdata: Världen

Extrahera Specifik Data

För att extrahera delar av data som matchar dina regex-mönster kan du använda -o med grep:

echo "Fel: Filen hittades inte" | grep -oE "[A-Za-z]+:"
# Utdata: Fel:

Använda Regex med sed

sed (stream editor) är ett kraftfullt verktyg för att tolka och omvandla text. Så här använder du sed med regex för att ersätta text:

echo "Bash är toppen" | sed -e 's/toppen/fantastisk/'
# Utdata: Bash är fantastisk

Mönstermatchning i Villkorssatser

Bash stöder också regex i villkorssatser direkt:

[[ "https://exempel.com" =~ ^https?:// ]] && echo "URL är giltig" || echo "URL är ogiltig"
# Utdata: URL är giltig

Avancerad Mönstermatchning och Manipulation med awk

awk är ett annat textbearbetningsverktyg som stöder mer komplex dataextraktion och manipulation. Det kan vara fördelaktigt när man arbetar med strukturerad textdata, som CSV:

echo -e "ID,Namn,Ålder\1,John,22\n2,Jane,24" | awk -F, '$3 > 22 {print $2 " är äldre än 22."}'
# Utdata: Jane är äldre än 22.

Även om Bashs inbyggda regex-funktionaliteter täcker många användningsfall kan du för mycket avancerade regex-operationer överväga att använda en kombination av Bash-skript med perl eller python-skript, eftersom dessa språk erbjuder kraftfulla regex-bibliotek (t.ex. re i Python). Ett enkelt exempel med Python:

echo "Fånga detta 123" | python3 -c "import sys; import re; print(re.search('(\d+)', sys.stdin.read()).group(0))"
# Utdata: 123

Att inkludera dessa programmeringsspråk vid behov kan hjälpa dig att utnyttja regex fulla kraft i dina Bash-skript.