Einführung
Der tr
command ist ein Linux-Befehlszeilendienstprogramm, das Zeichen aus der Standardeingabe übersetzt oder löscht (stdin
) und schreibt das Ergebnis auf die Standardausgabe (stdout
). Verwenden Sie tr
um verschiedene Texttransformationen durchzuführen, einschließlich Groß-/Kleinschreibung, Stauchen oder Löschen von Zeichen und grundlegende Textersetzung.
Seit tr
kann eine Datei nicht direkt lesen und gibt die Ergebnisse in der Standardausgabe aus, es wird oft mit Pipes verwendet (|
) und Weiterleitungen (>>
), um eine komplexere Verarbeitung von Dateiinhalten zu ermöglichen.
In diesem Tutorial lernen Sie, Linux tr
zu verwenden Befehl.
Voraussetzungen
- Ein System, auf dem Linux ausgeführt wird.
- Zugriff auf das Terminal (Strg + Alt + T ).
Linux tr-Befehlssyntax
Die grundlegenden tr
Befehlssyntax ist:
tr [options] SET1 [SET2]
Optionen
Ausführen von tr
ohne Optionen ersetzt jedes der in SET1
angegebenen Zeichen mit den Zeichen aus SET2
die die gleiche Position haben.
Zum Beispiel:
Im obigen Beispiel wird die Ausgabe des echo-Befehls in tr
geleitet Befehl, der jede Instanz von e ersetzt mit o .
EINSTELLEN
SET
s sind Zeichenfolgen. Der Befehl akzeptiert die folgenden interpretierten Sequenzen für den Zeichenabgleich:
Sequenz | Interpretation |
---|---|
\NNN | Zeichen mit dem NNN Oktalwert (1 bis 3 Oktalziffern). |
\\ | Backslash. |
\a | Ein hörbares Glockenzeichen. |
\b | Rücktaste. |
\f | Formular-Feed. |
\n | Zeilenumbruchzeichen. |
\r | Rückgabezeichen. |
\t | Horizontaler Tab. |
\v | Vertikaler Tab. |
CHAR1-CHAR2 | Alle Zeichen ab CHAR1 bis CHAR2 in aufsteigender Reihenfolge. |
[CHAR*] | Kopiert CHAR* in SET2 bis zu einer Länge von SET1 . |
[CHAR*REPEAT] | Wiederholt Kopien von CHAR . Wiederholt oktal, wenn mit 0 begonnen wird. |
[:alnum:] | Alle Buchstaben und Ziffern. |
[:alpha:] | Alle Buchstaben. |
[:blank:] | Horizontale Leerzeichen. |
[:cntrl:] | Alle Steuerzeichen. |
[:digit:] | Alle Ziffern. |
[:graph:] | Druckbare Zeichen, ohne Leerzeichen. |
[:lower:] | Alle Kleinbuchstaben. |
[:print:] | Druckbare Zeichen, einschließlich Leerzeichen. |
[:punct:] | Alle Satzzeichen. |
[:space:] | Horizontale oder vertikale Leerzeichen. |
[:upper:] | Alle Großbuchstaben. |
[:xdigit:] | Hexadezimalziffern. |
[=CHAR=] | Alle Zeichen entsprechen CHAR . |
Hinweis: Ein weiterer großartiger Unix-Text-Stream-Editor ist SED. Mit dem Tool können Sie Zeilen in einer Textdatei suchen, ersetzen, hinzufügen und löschen, ohne sie in einem Texteditor öffnen zu müssen.
Linux tr-Befehlsoptionen
Die Optionen bieten zusätzliche Zeichenumwandlungsaktionen. Die verfügbaren Optionen sind:
Option | Beschreibung |
---|---|
-C | Ergänzt die Zeichen in SET1 , einschließlich aller Zeichen in der Ausgabe außer den angegebenen. |
-c | Ergänzt die Werte in SET1 . Operationen gelten für Zeichen, die nicht in der gegebenen Menge enthalten sind. |
-d | Löscht Zeichen aus SET1 Eingabe. |
-s | Komprimiert wiederholte Zeichen, die im letzten Operanden angegeben sind (entweder SET1 oder SET2 ) und ersetzt sie durch ein einzelnes Vorkommen dieses Zeichens. |
-t | Kürzt SET1 auf die Länge von SET2 . |
-u | Stellt sicher, dass alle Ausgaben ungepuffert sind. |
--help | Zeigt die Hilfedatei mit allen verfügbaren Optionen an. |
--version | Zeigt die Programmversionsinformationen an. |
Linux tr-Beispiele
Nachfolgend finden Sie Beispiele für die Verwendung von tr
Befehl mit verschiedenen Optionen zum Umwandeln von Eingabetext.
Groß-/Kleinschreibung ändern
Es gibt drei Möglichkeiten, die Groß-/Kleinschreibung mit tr
zu ändern :
1. Geben Sie die genauen Zeichen an, die Sie konvertieren möchten
Geben Sie an, welche Zeichen aus der Eingabe Sie konvertieren möchten. Diese Option ändert die Groß-/Kleinschreibung oder ganze Zeichen und ersetzt die aus SET1
mit denen von SET2
.
Zum Beispiel:
2. Geben Sie den Zeichenbereich für die Konvertierung an
Die Angabe eines Bereichs erlaubt tr
um die Groß-/Kleinschreibung eines beliebigen Zeichens innerhalb dieses angegebenen Bereichs zu ändern. Das folgende Beispiel zeigt, wie Großbuchstaben in Kleinbuchstaben umgewandelt werden:
Drücken Sie STRG+C um den Eingabemodus zu verlassen.
3. Interpretierte Sequenzen angeben
Gleichen Sie Zeichen ab und konvertieren Sie sie, indem Sie interpretierte Sequenzen angeben. Die Sequenz für Kleinbuchstaben ist beispielsweise [:lower:]
, und die Sequenz für Großbuchstaben ist [:upper:]
. Die Angabe der beiden Sequenzen weist tr
an zum Abgleichen und Konvertieren der Groß-/Kleinschreibung:
Das obige Beispiel zeigt, wie tr
wandelt Großbuchstaben in Kleinbuchstaben um.
Entfernen Sie wiederholte Zeichen
Die -s
Option komprimiert wiederholte Zeichen in eine einzelne Instanz dieses Zeichens. Die Option ist besonders nützlich, wenn Leerzeichen in Tabulatoren oder Zeilenumbruchzeichen umgewandelt werden und der Eingabetext mehrere fortlaufende Leerzeichen enthält.
Die folgende Eingabe enthält beispielsweise mehrere Leerzeichen. Das Konvertieren in Tabulatoren ohne Drücken liefert das folgende Ergebnis:
Um mehrere Tabulatoren und Leerzeichen in der Ausgabe zu vermeiden, geben Sie -s
an Möglichkeit:
Zeichen löschen
Entfernen Sie bestimmte Zeichen mit -d
Möglichkeit. Im folgenden Beispiel tr
löscht jede Instanz des e Zeichen:
Geben Sie optional eine Gruppe von Zeichen mit interpretierten Sequenzen an. Entfernen Sie beispielsweise alle Ziffern, indem Sie [:digit:]
angeben Reihenfolge:
Ergänzungssets
Verwenden Sie den -c
Option zur Ergänzung der Zeichen in SET1
. Im folgenden Beispiel entfernen wir alle Zeichen außer Ziffern:
Alle Zeichen, die nicht im angegebenen Satz enthalten sind (in diesem Fall alles außer Ziffern), werden entfernt.
Entfernen Sie Zeilenumbrüche
Verkleinern Sie den Platz, den ein Text einnimmt, indem Sie Zeilenumbruchzeichen in Leerzeichen umwandeln. Der Inhalt erscheint dann in einer einzigen Zeile.
Im folgenden Beispiel verwenden wir den cat-Befehl, um eine Textdatei zu öffnen und sie an tr
weiterzuleiten Um Zeilenumbrüche zu entfernen:
Weiterleitung nach tr
Eine Alternative zum Weiterleiten ist die Verwendung der Umleitung, um Inhalte in tr
einzuspeisen . Außerdem können Sie die Umleitung verwenden, um tr
zu speichern Ausgabe in eine Datei.
Das folgende Beispiel zeigt, wie alle nicht druckbaren Zeichen aus einer Datei entfernt werden, deren Inhalt in tr
umgeleitet wird :
Satz abschneiden
Standardmäßig, wenn SET1
ist länger als SET2
, tr
verwendet das letzte Zeichen von SET2
wieder bei der Bearbeitung der Eingabe. Zum Beispiel:
Seit SET1
ist länger als SET2
, tr
verwendet das letzte Zeichen von SET2
wieder , in diesem Fall 2 .
Verwenden Sie den -t
Option zum Abschneiden von SET1
auf die Länge von SET2
:
Die -t
Option weist tr
an um SET1
abzuschneiden auf die Länge von SET2
und ersetzt nur die ersten beiden Zeichen.
Diakritische Zeichen entfernen
Verwenden Sie den [=CHAR=]
Sequenz, um alle Zeichen abzugleichen, die dem angegebenen entsprechen. Beispielsweise kann die Sequenz diakritische Zeichen identifizieren und aus Zeichen entfernen.
Jedes Wort separat drucken
Drucken Sie den Inhalt einer Datei Zeile für Zeile mit -c
Option und ersetzen Sie die nicht-alphanumerischen Zeichen durch ein Zeilenumbruchzeichen.
Hinweis: Wenn Sie Bash bevorzugen, sehen Sie sich an, wie man eine Datei Zeile für Zeile liest.
Die Ausgabe wird nun wortweise angezeigt.
Ausgabe in Datei speichern
Seit tr
ändert den Inhalt einer Datei nicht direkt, es speichert auch keine von Ihnen vorgenommenen Änderungen. Speichern Sie die Ausgabe in einer Datei, indem Sie sie umleiten, wie im folgenden Beispiel gezeigt:
Öffnen der neuen Datei mit cat
zeigt an, dass die Änderungen gespeichert wurden.
Fazit
Dieses Tutorial hat gezeigt, wie man tr
verwendet Befehl und seine verfügbaren Optionen für verschiedene Texttransformationen. Sehen Sie sich andere Linux-Textdienstprogramme in unseren Handbüchern für den Sortierbefehl und weniger Terminalpager an oder sehen Sie sich die besten Linux-Texteditoren an.