Übersicht
tr (translate) dient, wie der Name schon sagt, dazu, Zeichen zu 'übersetzen' oder 'zu ersetzen'. Es ist spezialisiert auf einfache Zeichen-für-Zeichen-Transformationen, wie z. B. das Umwandeln von Kleinbuchstaben in Großbuchstaben, das Ersetzen bestimmter Zeichen durch andere oder das Umwandeln von Zeilenumbrüchen in Leerzeichen. Im Gegensatz zu `sed` oder `awk`, die komplexe Mustererkennung auf Zeilenebene unterstützen, ist `tr` bei der zeichenbasierten Verarbeitung sehr schnell und effizient.
Hauptmerkmale
Die Hauptmerkmale des tr-Befehls sind:
- Wandelt Text zeichenweise um oder löscht ihn.
- Empfängt Daten nur über die Standardeingabe (stdin).
- Verwendet keine regulären Ausdrücke.
- Wird häufig in Verbindung mit Pipes (`|`) verwendet, um die Ausgabe anderer Befehle zu verarbeiten.
Grundlegende Syntax von tr
Der tr-Befehl nimmt im Wesentlichen zwei Zeichenketten (Sets) als Argumente entgegen.
- `tr 'set1' 'set2'`: Wandelt Zeichen aus `set1` 1:1 in die entsprechenden Zeichen aus `set2` um.
- `tr -d 'set1'`: Löscht alle Zeichen, die in `set1` enthalten sind.
Wichtige Optionen
Die häufig verwendeten Optionen des tr-Befehls wurden nach ihrem Zweck gruppiert.
1) Funktionsoptionen
2) Sonderzeichen & Mengen
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`tr` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Anwendungsbeispiele
Lernen Sie die Funktionen des tr-Befehls durch verschiedene Anwendungsbeispiele kennen.
Kleinbuchstaben in Großbuchstaben umwandeln
echo 'hello world' | tr '[:lower:]' '[:upper:]'
Wandelt Kleinbuchstaben, die über die Standardeingabe empfangen wurden, in Großbuchstaben um und gibt sie aus.
Bestimmte Zeichen löschen
echo 'hello world' | tr -d ' '
Löscht alle Leerzeichen (` `) aus dem Text.
Zeilenumbrüche in Leerzeichen umwandeln
cat file.txt | tr '\n' ' '
Wandelt Zeilenumbruchzeichen (`\n`) im Dateiinhalt in Leerzeichen (` `) um und gibt den Inhalt in einer einzigen Zeile aus.
Doppelte Leerzeichen komprimieren
echo 'hello world' | tr -s ' '
Komprimiert aufeinanderfolgende, wiederholte Leerzeichen zu einem einzigen Leerzeichen. Die Option `-s` führt die Funktion zum Komprimieren doppelter Zeichenketten aus.
Großbuchstaben in Kleinbuchstaben umwandeln
echo 'HELLO WORLD' | tr 'A-Z' 'a-z'
Wandelt Großbuchstaben, die über die Standardeingabe empfangen wurden, in Kleinbuchstaben um und gibt sie aus.
Tipps & Hinweise
Wichtige Hinweise zur Verwendung des tr-Befehls sind hier zusammengefasst.
Tipps
- tr akzeptiert keine Dateinamen direkt als Argumente. Der Text muss immer über die Standardeingabe, z. B. mittels `cat` oder `echo`, übergeben werden.
- Es wird empfohlen, beim Übergeben von Zeichenketten als Argumente einfache Anführungszeichen (`'`) zu verwenden, um zu verhindern, dass die Shell Sonderzeichen interpretiert.
- `tr` ist im Vergleich zu `sed` oder `awk` funktional einfacher, hat aber den Vorteil, dass es bei zeichenbasierten Transformationsaufgaben wesentlich schneller ist.