GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Tr-Befehl in Linux mit Beispielen

tr ist ein Befehlszeilenprogramm in Linux- und Unix-Systemen, das Zeichen aus der Standardeingabe übersetzt, löscht und komprimiert und das Ergebnis in die Standardausgabe schreibt.

Der tr Der Befehl kann Vorgänge wie das Entfernen wiederholter Zeichen, das Umwandeln von Großbuchstaben in Kleinbuchstaben und das Ersetzen und Entfernen grundlegender Zeichen ausführen. Typischerweise wird es in Kombination mit anderen Befehlen durch Rohrleitungen verwendet.

In diesem Tutorial zeigen wir Ihnen, wie Sie den tr verwenden Befehl durch praktische Beispiele und detaillierte Erläuterungen der gängigsten Optionen.

Verwendung des tr Befehl #

Die Syntax für den tr Befehl lautet wie folgt:

tr OPTION... SET1 [SET2]

tr akzeptiert zwei Sätze von Zeichen, normalerweise mit der gleichen Länge, und ersetzt die Zeichen des ersten Satzes durch die entsprechenden Zeichen des zweiten Satzes.

Ein SET ist im Grunde eine Zeichenkette, einschließlich der speziellen Backslash-escaped Zeichen.

Im folgenden Beispiel tr ersetzt alle Zeichen aus der Standardeingabe (Linuxize), indem die Zeichen aus dem ersten Satz mit den passenden Zeichen aus dem zweiten Satz verknüpft werden.

echo 'linuxize' | tr 'lin' 'red'

Jedes Vorkommen von l wird durch r ersetzt , i mit e , und n mit d :

reduxeze

Die Zeichensätze können auch über Zeichenbereiche definiert werden. Schreiben Sie beispielsweise statt:

echo 'linuxize' | tr 'lmno' 'wxyz'

Sie können verwenden:

echo 'linuxize' | tr 'l-n' 'w-z'

Wenn -c (--complement ) Option verwendet wird, tr ersetzt alle Zeichen, die nicht in SET1 sind.

Im Beispiel unten werden alle Zeichen außer „li“ durch das letzte Zeichen aus dem zweiten Satz ersetzt:

echo 'linuxize' | tr -c 'li' 'xy'
liyyyiyyy

Wie Sie vielleicht bemerkt haben, hat die obige Ausgabe ein sichtbares Zeichen mehr als die Eingabe. Das liegt daran, dass das echo Befehl gibt ein unsichtbares Zeilenumbruchzeichen \n aus das wird auch durch y ersetzt . Um einen String ohne Zeilenumbruch wiederzugeben, verwenden Sie -n Option.

Das -d (--delete ) Option teilt tr mit um in SET1 angegebene Zeichen zu löschen. Geben Sie beim Löschen von Zeichen ohne Zusammendrücken nur einen Satz an.

Der folgende Befehl entfernt l , i und z Zeichen:

echo 'Linuxize' | tr -d 'liz'

Das L Zeichen wird nicht gelöscht, da die Eingabe einen großen L enthält während der l Zeichen im SET ist Kleinbuchstabe.

Lnuxe

Das -s (--squeeze-repeats ) Option ersetzt eine Folge wiederholter Vorkommen durch den Zeichensatz im letzten SET.

Im folgenden Beispiel tr entfernt die wiederholten Leerzeichen:

echo "GNU     \    Linux" | tr -s ' '
GNU \ Linux

Bei Verwendung von SET2 wird die Folge des in SET1 angegebenen Zeichens durch SET2 ersetzt.

echo "GNU     \    Linux" | tr -s ' ' '_'
GNU_\_Linux

Das -t (--truncate-set1 ) Option erzwingt tr um SET1 vor der weiteren Verarbeitung auf die Länge von SET2 zu kürzen.

Standardmäßig, wenn SET1 größer als SET2 ist tr wird das letzte Zeichen von SET2 wiederverwenden. Hier ist ein Beispiel:

echo 'Linux ize' | tr 'abcde' '12'

Die Ausgabe zeigt, dass das Zeichen e von SET1 wird mit dem letzten Zeichen von SET2 abgeglichen, das ist 2 :

Linux iz2

Verwenden Sie nun denselben Befehl mit dem -t Möglichkeit:

echo 'Linux ize' | tr -t 'abcde' '12'
Linux ize

Sie können sehen, dass die letzten drei Zeichen des SET1 entfernt werden. SET1 wird zu „ab“, hat die gleiche Länge wie SET2, und es wird kein Ersatz vorgenommen.

Optionen kombinieren #

Der tr Mit dem Befehl können Sie auch seine Optionen kombinieren. Beispielsweise ersetzt der folgende Befehl zunächst alle Zeichen außer i mit 0 und drückt dann die wiederholte 0 Zeichen:

echo 'Linux ize' | tr -cs 'i' '0'
0i0i0

Tr-Befehlsbeispiele #

In diesem Abschnitt behandeln wir einige Beispiele für häufige Verwendungen des tr Befehl.

Konvertieren Sie Kleinbuchstaben in Großbuchstaben #

Das Umwandeln von Kleinbuchstaben in Großbuchstaben oder umgekehrt ist einer der typischen Anwendungsfälle des tr Befehl. [:lower:] entspricht allen Kleinbuchstaben und [:upper:] entspricht allen Großbuchstaben.

echo 'Linuxize' | tr '[:lower:]' '[:upper:]'
LINUXIZE

Anstelle von Zeichenklassen können Sie auch Bereiche verwenden:

echo 'Linuxize' | tr 'a-z' 'A-Z'

Um Großbuchstaben in Kleinbuchstaben umzuwandeln, tauschen Sie einfach die Plätze der Sätze.

Entferne alle nicht-numerischen Zeichen #

Der folgende Befehl entfernt alle nicht numerischen Zeichen:

echo "my phone is 123-456-7890" | tr -cd [:digit:]

[:digit:] steht für alle Ziffernzeichen und mit -c Option entfernt der Befehl alle Zeichen, die keine Ziffern sind. Die Ausgabe sieht folgendermaßen aus:

1234567890

Füge jedes Wort in eine neue Zeile ein #

Um jedes Wort in eine neue Zeile einzufügen, müssen wir alle nicht alphanumerischen Zeichen abgleichen und durch eine neue Zeile ersetzen:

echo 'GNU is an operating system' | tr -cs '[:alnum:]' '\n'
GNU
is
an
operating
system

Leerzeilen entfernen #

Um die Leerzeilen zu löschen, drücken Sie einfach die sich wiederholenden Zeilenumbruchzeichen:

tr -s '\n' < file.txt > new_file.txt

Im obigen Befehl verwenden wir das Umleitungssymbol < um den Inhalt der file.txt zu übergeben zum tr Befehl. Die Umleitung > schreibt die Ausgabe des Befehls in new_file.txt .

Der $PATH Umgebungsvariable ist eine durch Doppelpunkte getrennte Liste von Verzeichnissen, die der Shell mitteilt, in welchen Verzeichnissen sie nach ausführbaren Dateien suchen soll, wenn Sie einen Befehl eingeben.

Um jedes Verzeichnis in einer separaten Zeile auszugeben, müssen wir den Doppelpunkt (: ) und ersetzen Sie sie durch die neue Zeile:

echo $PATH | tr  ':' '\n'
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin

Schlussfolgerung #

tr ist ein Befehl zum Übersetzen oder Löschen von Zeichen.

Obwohl sehr nützlich, tr kann nur mit einzelnen Zeichen arbeiten. Für komplexere Mustererkennung und String-Manipulation sollten Sie sed verwenden oder awk .

Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.


Linux
  1. wc Linux-Befehl mit Beispielen

  2. Linux-Sortierungsbefehl mit Beispielen

  3. Linux Tee-Befehl mit Beispielen

  4. Linux-Kopfbefehl mit Beispielen

  5. JQ-Befehl in Linux mit Beispielen

Linux-Uhrbefehl mit Beispielen

Wartebefehl in Linux mit Beispielen

Linux-Exportbefehl mit Beispielen

Neustartbefehl unter Linux mit Beispielen

Linux-IP-Befehl mit Beispielen

Linux tr-Befehl mit Beispielen