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_textAusgabe:
HalloWelt# Variable mit Pfad
pfad="/home/user/dokumente/datei.txt"
# Muster: Alles bis zum letzten '/' löschen
ordner_name=${pfad%/*}
echo $ordner_nameAusgabe:
/home/user/dokumenteTiefere 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.