tr ist ein UNIX-Dienstprogramm zum Übersetzen, Löschen oder Komprimieren wiederholter Zeichen. Es wird von STDIN gelesen und in STDOUT geschrieben.
tr steht für translate.
Syntax
Die Syntax des tr-Befehls lautet:
$ tr [OPTION] SET1 [SET2]
Übersetzung
Wenn sowohl SET1 als auch SET2 angegeben sind und die Option „-d“ nicht angegeben ist, ersetzt der Befehl tr jedes Zeichen in SET1 durch jedes Zeichen an derselben Position in SET2.
1. Kleinbuchstaben in Großbuchstaben umwandeln
Der folgende tr-Befehl wird verwendet, um Kleinbuchstaben in Großbuchstaben umzuwandeln
$ tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ thegeekstuff THEGEEKSTUFF
Der folgende Befehl wandelt auch Kleinbuchstaben in Großbuchstaben um
$ tr [:lower:] [:upper:] thegeekstuff THEGEEKSTUFF
Sie können auch Bereiche in tr verwenden. Der folgende Befehl verwendet Bereiche, um Klein- in Großbuchstaben umzuwandeln.
$ tr a-z A-Z thegeekstuff THEGEEKSTUFF
2. Klammern in Klammern übersetzen
Sie können auch aus und in eine Datei übersetzen. In diesem Beispiel übersetzen wir Klammern in einer Datei mit runden Klammern.
$ tr '{}' '()' < inputfile > outputfile
Der obige Befehl liest jedes Zeichen aus „inputfile“, übersetzt, wenn es eine geschweifte Klammer ist, und schreibt die Ausgabe in „outputfile“.
3. Leerzeichen in Tabulatoren umwandeln
Der folgende Befehl übersetzt alle Leerzeichen in Tabulatoren
$ echo "This is for testing" | tr [:space:] '\t' This is for testing
4. Squeeze die Wiederholung von Zeichen mit -s
In Beispiel 3 sehen wir, wie Leerzeichen mit Tabulatoren übersetzt werden. Wenn jedoch zwei weitere Leerzeichen fortlaufend vorhanden sind, übersetzt der vorherige Befehl jedes Leerzeichen wie folgt in einen Tabulator.
$ echo "This is for testing" | tr [:space:] '\t' This is for testing
Wir können die Option -s verwenden, um die Wiederholung von Zeichen zu komprimieren.
$ echo "This is for testing" | tr -s [:space:] '\t' This is for testing
Ebenso können Sie mehrere fortlaufende Leerzeichen mit einem einzigen Leerzeichen
umwandeln$ echo "This is for testing" | tr -s [:space:] ' ' This is for testing
5. Angegebene Zeichen mit Option -d löschen
tr kann auch verwendet werden, um bestimmte Zeichen mit der Option -d zu entfernen.
$ echo "the geek stuff" | tr -d 't' he geek suff
Um alle Ziffern aus der Zeichenfolge zu entfernen, verwenden Sie
$ echo "my username is 432234" | tr -d [:digit:] my username is
Wenn Sie Zeilen aus einer Datei löschen möchten, können Sie auch den Befehl sed d verwenden.
6. Ergänzen Sie die Sätze mit der Option -c
Sie können SET1 mit der Option -c ergänzen. Um beispielsweise alle Zeichen außer Ziffern zu entfernen, können Sie Folgendes verwenden.
$ echo "my username is 432234" | tr -cd [:digit:] 432234
7. Alle nicht druckbaren Zeichen aus einer Datei entfernen
Der folgende Befehl kann verwendet werden, um alle nicht druckbaren Zeichen aus einer Datei zu entfernen.
$ tr -cd [:print:] < file.txt
8. Verbinden Sie alle Zeilen in einer Datei zu einer einzigen Zeile
Der folgende Befehl übersetzt alle Zeilenumbrüche in Leerzeichen und macht das Ergebnis zu einer einzelnen Zeile.
$ tr -s '\n' ' ' < file.txt