Länge ·
Substring ·
Ersetzen ·
Splitten ·
Groß-/Kleinschreibung ·
Trimmen
Mit diesen Operationen können Sie Texte in Bash-Skripten analysieren, manipulieren und formatieren – unverzichtbar für die Automatisierung und Textverarbeitung.
Mit ${#var} ermitteln Sie die Anzahl der Zeichen eines Strings – inklusive Leerzeichen und Sonderzeichen.
${#var} in Bedingungen, um zu prüfen, ob eine Variable leer ist: if [[ ${#var} -eq 0 ]]; then ...
Mit ${var:start:länge} extrahieren Sie einen Teilstring – beginnend bei start (0-basiert) mit der angegebenen länge.
| Syntax | Beschreibung |
|---|---|
| ${var:0:5} | Erste 5 Zeichen |
| ${var:6} | Ab Position 6 bis zum Ende |
| ${var: -5} | Letzte 5 Zeichen (Achtung: Leerzeichen vor -) |
| ${var: -5:3} | 3 Zeichen ab Position 5 vor dem Ende |
${var: -n} ist ein Leerzeichen zwischen : und - erforderlich! Sonst wird es als anderer Parameter interpretiert.
Mit ${var/alt/neu} ersetzen Sie das erste Vorkommen von alt durch neu. Mit // werden alle Vorkommen ersetzt.
| Syntax | Beschreibung |
|---|---|
| ${var/alt/neu} | Erstes Vorkommen von alt durch neu ersetzen |
| ${var//alt/neu} | Alle Vorkommen von alt durch neu ersetzen |
| ${var/#alt/neu} | Nur ersetzen, wenn alt am Anfang steht |
| ${var/%alt/neu} | Nur ersetzen, wenn alt am Ende steht |
${var/ /_} ersetzen Sie Leerzeichen durch Unterstriche – praktisch für die Umwandlung von Dateinamen.
Mit IFS (Internal Field Separator) und read -ra können Sie einen String anhand eines Trennzeichens in ein Array aufteilen.
| Konzept | Beschreibung |
|---|---|
| IFS=',' | Trennzeichen auf Komma setzen |
| read -ra array | Liest in Array (a = indexed, r = raw) |
| <<< "$var" | Here-String: Übergibt Variable als Eingabe |
| ${#array[@]} | Anzahl der Elemente |
| ${array[0]} | Erstes Element |
IFS nach dem Splitten wieder zurückzusetzen, wenn Sie das Standardverhalten benötigen: IFS=$' \t\n'
Mit ^^ und ,, konvertieren Sie einen String in Groß- oder Kleinbuchstaben. Es gibt auch Varianten für einzelne Zeichen.
| Syntax | Beschreibung |
|---|---|
| ${var^^} | Alles in GROSSBUCHSTABEN |
| ${var,,} | Alles in kleinbuchstaben |
| ${var^} | Nur erster Buchstabe groß |
| ${var,} | Nur erster Buchstabe klein |
| ${var^^[aeiou]} | Nur Vokale in Großbuchstaben |
if [[ ${var,,} == "ja" ]]; then ...
Mit ## und %% können Sie Muster vom Anfang (Präfix) oder Ende (Suffix) eines Strings entfernen – ideal zum Trimmen von Leerzeichen.
| Syntax | Beschreibung |
|---|---|
| ${var#*( )} | Entfernt führende Leerzeichen (kurzeste Übereinstimmung) |
| ${var##*( )} | Entfernt führende Leerzeichen (längste Übereinstimmung) |
| ${var%*( )} | Entfernt nachfolgende Leerzeichen (kurzeste Übereinstimmung) |
| ${var%%*( )} | Entfernt nachfolgende Leerzeichen (längste Übereinstimmung) |
| echo "$var" | xargs | Beide Seiten trimmen (mit xargs) |
echo "$var" | xargs die einfachste Lösung. Für reine Bash-Lösungen verwenden Sie die Parameter-Expansion mit ## und %%.
${#var}
${var:0:5}
${var/alt/neu}
IFS read -ra
${var^^}
${var##*( )}