Löschen von Zeichen, die einem Muster entsprechen

Bash:
Löschen von Zeichen, die einem Muster entsprechen

Wie geht das?

# Variable mit Wert
text="Hallo123Welt456"

# Muster: Zahlen löschen
bereinigter_text=$(echo "$text" | tr -d '0-9')
echo $bereinigter_text

Ausgabe:

HalloWelt
# Variable mit Pfad
pfad="/home/user/dokumente/datei.txt"

# Muster: Alles bis zum letzten '/' löschen
ordner_name=${pfad%/*}
echo $ordner_name

Ausgabe:

/home/user/dokumente

Tiefere Einblicke

Das Löschen bestimmter Zeichen hat in Unix-ähnlichen Systemen eine lange Tradition. Tools wie tr, sed, awk oder Shell-Parametererweiterungen bieten verschiedene Herangehensweisen. Mit tr werden Zeichen ersetzt oder entfernt. sed (stream editor) ist für komplexere Transformationen gedacht, während awk als Programmiersprache für Textverarbeitung gilt.

Für uns heute ist tr besonders unkompliziert, wenn es um einfaches Löschen geht. Shell-Parametererweiterungen sind direkt in der Bash integriert und bieten schnelle Änderungen ohne das Aufrufen externer Programme. Beide Methoden haben unterschiedliche Anwendungsgebiete: tr ist klar im Vorteil, wenn es um Zeichensätze geht, Shell-Parametererweiterungen, wenn es um Teile von Variableninhalten geht.

Siehe auch