Linux-Zeichenübersetzung

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Der Befehl tr ist ein leistungsstarkes Textmanipulationswerkzeug in Linux, das es Benutzern ermöglicht, Zeichen aus der Standardeingabe zu übersetzen, zu löschen und zusammenzudrücken. Es ist besonders nützlich für Aufgaben wie die Umwandlung von Groß- und Kleinschreibung, das Entfernen bestimmter Zeichen oder die Standardisierung der Formatierung in Textdateien.

In diesem Lab werden Sie lernen, wie Sie den tr-Befehl für verschiedene Textmanipulationsaufgaben verwenden. Sie werden drei Hauptfunktionen untersuchen: das Übersetzen von Zeichen aus einem Satz in einen anderen, das Löschen unerwünschter Zeichen und das Zusammenpressen wiederholter Zeichen. Diese Fähigkeiten sind für die effiziente Textverarbeitung und Datenbereinigung in Linux-Umgebungen unerlässlich.

Am Ende dieses Labs werden Sie in der Lage sein, den tr-Befehl sicher zu nutzen, um Textdaten gemäß Ihren Anforderungen zu transformieren, wodurch Ihre Textverarbeitungsaufgaben effizienter und präziser werden.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/TextProcessingGroup -.-> linux/tr("Character Translating") subgraph Lab Skills linux/echo -.-> lab-271411{{"Linux-Zeichenübersetzung"}} linux/cat -.-> lab-271411{{"Linux-Zeichenübersetzung"}} linux/tr -.-> lab-271411{{"Linux-Zeichenübersetzung"}} end

Grundlegendes Verständnis des tr-Befehls

Der tr-Befehl in Linux wird verwendet, um Zeichen aus der Standardeingabe zu übersetzen, zu löschen oder zusammenzudrücken und das Ergebnis an die Standardausgabe zu schreiben. In diesem Schritt werden Sie die grundlegende Syntax des tr-Befehls lernen und wie Sie ihn verwenden können, um Kleinbuchstaben in Großbuchstaben umzuwandeln.

Die Grundlegende Syntax von tr

Die grundlegende Syntax des tr-Befehls lautet:

tr [OPTION]... SET1 [SET2]

Dabei gilt:

  • SET1 ist der Satz von Zeichen, die übersetzt oder gelöscht werden sollen.
  • SET2 ist der Satz von Zeichen, die die Zeichen in SET1 ersetzen werden.

Erstellen einer Beispiel-Textdatei

Beginnen wir damit, eine Beispiel-Textdatei zu erstellen, mit der Sie üben können. Öffnen Sie ein Terminal in der LabEx VM und führen Sie den folgenden Befehl aus:

echo 'industrial revolution' > ~/project/sample.txt

Dieser Befehl erstellt eine neue Datei namens sample.txt im Verzeichnis /home/labex/project mit dem Text "industrial revolution".

Umwandeln von Kleinbuchstaben in Großbuchstaben

Nun verwenden wir den tr-Befehl, um alle Kleinbuchstaben in Großbuchstaben umzuwandeln:

tr 'a-z' 'A-Z' < ~/project/sample.txt

Wenn Sie diesen Befehl ausführen, sollten Sie die folgende Ausgabe sehen:

INDUSTRIAL REVOLUTION

Verständnis des Befehls

Lassen Sie uns analysieren, was passiert ist:

  • tr 'a-z' 'A-Z' weist den Befehl an, jeden Kleinbuchstaben (a-z) durch seinen entsprechenden Großbuchstaben (A-Z) zu ersetzen.
  • Das <-Symbol leitet den Inhalt von ~/project/sample.txt als Eingabe an den tr-Befehl weiter.
  • Das Ergebnis wird im Terminal angezeigt, aber nicht in der Datei gespeichert.

Speichern der Ausgabe in einer neuen Datei

Wenn Sie den transformierten Text in einer neuen Datei speichern möchten, können Sie die Ausgabeumleitung verwenden:

tr 'a-z' 'A-Z' < ~/project/sample.txt > ~/project/uppercase_sample.txt

Um den Inhalt der neuen Datei zu überprüfen, verwenden Sie den cat-Befehl:

cat ~/project/uppercase_sample.txt

Sie sollten sehen:

INDUSTRIAL REVOLUTION

Nun haben Sie erfolgreich gelernt, wie Sie die grundlegende Funktionalität des tr-Befehls nutzen können, um Text von Kleinbuchstaben in Großbuchstaben zu transformieren.

Löschen von Zeichen mit tr

Eine der leistungsstarken Funktionen des tr-Befehls ist seine Fähigkeit, bestimmte Zeichen aus Text zu löschen. Diese Funktionalität ist besonders nützlich, wenn Sie Datenfiles bereinigen oder unerwünschte Zeichen aus Textströmen entfernen möchten.

Die Löschoption in tr

Um Zeichen mit dem tr-Befehl zu löschen, verwenden Sie die Option -d, gefolgt von dem Satz von Zeichen, die Sie entfernen möchten:

tr -d SET1

Dabei ist SET1 der Satz von Zeichen, die Sie löschen möchten.

Erstellen einer Beispiel-Textdatei mit Zahlen

Erstellen wir eine Beispiel-Datei, die Text mit Zahlen enthält, mit der wir üben können:

echo 'Factory 1 Output: 100 units, Factory 2 Output: 150 units' > ~/project/factory_output.txt

Dieser Befehl erstellt eine Datei namens factory_output.txt im Verzeichnis /home/labex/project mit Text, der Zahlen enthält.

Entfernen von Ziffern aus dem Text

Nun verwenden wir den tr-Befehl mit der Option -d, um alle Ziffern aus dem Text zu entfernen:

tr -d '0-9' < ~/project/factory_output.txt

Wenn Sie diesen Befehl ausführen, sollten Sie die folgende Ausgabe sehen:

Factory  Output:  units, Factory  Output:  units

Beachten Sie, dass alle Zahlen (1, 2, 100, 150) aus dem Text entfernt wurden.

Verständnis des Befehls

Lassen Sie uns analysieren, was passiert ist:

  • tr -d '0-9' weist den Befehl an, alle Zeichen im Bereich 0 - 9 (das sind alle Ziffern) zu löschen.
  • Das <-Symbol leitet den Inhalt von ~/project/factory_output.txt als Eingabe an den tr-Befehl weiter.
  • Das Ergebnis wird im Terminal angezeigt, aber nicht in der Datei gespeichert.

Speichern der Ausgabe in einer neuen Datei

Wenn Sie die Ausgabe ohne Ziffern in einer neuen Datei speichern möchten, können Sie die Ausgabeumleitung verwenden:

tr -d '0-9' < ~/project/factory_output.txt > ~/project/no_digits_output.txt

Um den Inhalt der neuen Datei zu überprüfen, verwenden Sie den cat-Befehl:

cat ~/project/no_digits_output.txt

Sie sollten sehen:

Factory  Output:  units, Factory  Output:  units

Löschen mehrerer Zeichensätze

Sie können auch mehrere Zeichentypen in einem einzigen Befehl löschen. Beispielsweise löschen wir sowohl Ziffern als auch Satzzeichen:

tr -d '0-9:,;' < ~/project/factory_output.txt

Dies wird alle Ziffern (0 - 9) sowie Doppelpunkte, Kommas und Semikolons aus dem Text entfernen.

Jetzt wissen Sie, wie Sie den tr-Befehl verwenden können, um bestimmte Zeichen aus Text zu löschen, was eine wertvolle Fähigkeit für die Datenbereinigung und Textverarbeitung in Linux ist.

Zusammenfassen von Zeichen mit tr

Eine weitere nützliche Funktion des tr-Befehls ist seine Fähigkeit, wiederholte Zeichen zu "zusammenfassen", indem aufeinanderfolgende Vorkommen desselben Zeichens durch ein einzelnes Exemplar ersetzt werden. Diese Funktionalität ist besonders wertvoll, wenn es um Text geht, der übermäßige Leerzeichen oder andere wiederholte Zeichen enthält.

Die Zusammenfassungsoption in tr

Um wiederholte Zeichen mit dem tr-Befehl zusammenzufassen, verwenden Sie die Option -s, gefolgt von dem Satz von Zeichen, die Sie zusammenfassen möchten:

tr -s SET1

Dabei ist SET1 der Satz von Zeichen, die Sie zusammenfassen möchten.

Erstellen einer Beispiel-Textdatei mit übermäßigen Leerzeichen

Erstellen wir eine Beispiel-Datei mit übermäßigen Leerzeichen, mit der wir üben können:

echo 'Error:    Too much    whitespace.' > ~/project/whitespace.txt

Dieser Befehl erstellt eine Datei namens whitespace.txt im Verzeichnis /home/labex/project mit Text, der mehrere aufeinanderfolgende Leerzeichen enthält.

Zusammenfassen von Leerzeichen im Text

Nun verwenden wir den tr-Befehl mit der Option -s, um mehrere Leerzeichen zu einzelnen Leerzeichen zusammenzufassen:

tr -s ' ' < ~/project/whitespace.txt

Wenn Sie diesen Befehl ausführen, sollten Sie die folgende Ausgabe sehen:

Error: Too much whitespace.

Beachten Sie, dass die mehreren Leerzeichen zwischen den Wörtern auf einzelne Leerzeichen reduziert wurden, wodurch der Text lesbarer wird.

Verständnis des Befehls

Lassen Sie uns analysieren, was passiert ist:

  • tr -s ' ' weist den Befehl an, wiederholte Vorkommen eines Leerzeichens zu einem einzelnen Leerzeichen zusammenzufassen.
  • Das <-Symbol leitet den Inhalt von ~/project/whitespace.txt als Eingabe an den tr-Befehl weiter.
  • Das Ergebnis wird im Terminal angezeigt, aber nicht in der Datei gespeichert.

Speichern der Ausgabe in einer neuen Datei

Wenn Sie den Text mit zusammengefassten Leerzeichen in einer neuen Datei speichern möchten, können Sie die Ausgabeumleitung verwenden:

tr -s ' ' < ~/project/whitespace.txt > ~/project/clean_whitespace.txt

Um den Inhalt der neuen Datei zu überprüfen, verwenden Sie den cat-Befehl:

cat ~/project/clean_whitespace.txt

Sie sollten sehen:

Error: Too much whitespace.

Kombinieren von tr-Operationen

Der tr-Befehl ermöglicht es Ihnen, Operationen zu kombinieren. Beispielsweise können Sie in einem einzigen Befehl sowohl Zeichen übersetzen als auch zusammenfassen:

tr 'a-z' 'A-Z' -s ' ' < ~/project/whitespace.txt

Dieser Befehl wird alle Kleinbuchstaben in Großbuchstaben umwandeln und auch mehrere Leerzeichen zu einzelnen Leerzeichen zusammenfassen.

Erstellen eines komplexeren Beispiels

Erstellen wir ein komplexeres Beispiel, mit dem Sie üben können:

echo 'log     entry:   error   code  404   not     found' > ~/project/complex.txt

Nun verwenden wir tr, um alle Buchstaben in Großbuchstaben umzuwandeln und Leerzeichen zusammenzufassen:

tr 'a-z' 'A-Z' -s ' ' < ~/project/complex.txt > ~/project/processed_complex.txt

Um das Ergebnis zu sehen:

cat ~/project/processed_complex.txt

Sie sollten sehen:

LOG ENTRY: ERROR CODE 404 NOT FOUND

Jetzt haben Sie gelernt, wie Sie den tr-Befehl verwenden können, um wiederholte Zeichen in Text zusammenzufassen. Zusammen mit den Übersetzungs- und Löschfunktionen, die Sie zuvor gelernt haben, erhalten Sie damit ein leistungsstarkes Werkzeug zur Textmanipulation in Linux.

Kombinieren von tr-Operationen für fortgeschrittene Texttransformationen

In diesem Schritt lernen Sie, wie Sie mehrere tr-Operationen kombinieren können, um fortgeschrittene Texttransformationen durchzuführen. Die Fähigkeit, verschiedene Operationen zu verketten, macht tr zu einem vielseitigen Werkzeug für komplexe Textverarbeitungstasks.

Erstellen einer Beispiel-Daten-Datei

Erstellen wir eine Beispiel-Daten-Datei, die eine Mischung aus Groß- und Kleinbuchstaben, Zahlen und Sonderzeichen enthält:

echo 'User123: [email protected] - Last Login: 2023-10-15' > ~/project/user_data.txt

Dieser Befehl erstellt eine neue Datei namens user_data.txt im Verzeichnis /home/labex/project mit einem Beispiel-Benutzerdatensatz.

Mehrere Operationen mit Pipes

Eine Möglichkeit, mehrere Transformationen durchzuführen, ist die Verwendung von Pipes, um tr-Befehle zu verketten:

cat ~/project/user_data.txt | tr 'A-Z' 'a-z' | tr -d '0-9' | tr -s ' '

Dieser Befehl wird:

  1. Alle Großbuchstaben in Kleinbuchstaben umwandeln
  2. Alle Ziffern löschen
  3. Aufeinanderfolgende Leerzeichen zu einem einzelnen Leerzeichen zusammenfassen

Die Ausgabe sollte wie folgt aussehen:

user: [email protected] - last login: --

Verwenden von tr mit erweiterten Zeichensätzen

Der tr-Befehl unterstützt bestimmte spezielle Zeichensätze, die Ihre Transformationen kompakter gestalten können. Einige häufige Zeichensätze sind:

  • [:alnum:] - Alle Buchstaben und Ziffern
  • [:alpha:] - Alle Buchstaben
  • [:digit:] - Alle Ziffern
  • [:lower:] - Alle Kleinbuchstaben
  • [:upper:] - Alle Großbuchstaben
  • [:space:] - Alle Leerzeichen

Verwenden wir diese Zeichensätze, um unsere Benutzerdaten zu transformieren:

tr '[:upper:]' '[:lower:]' < ~/project/user_data.txt > ~/project/lowercase_user_data.txt

Dieser Befehl wandelt alle Großbuchstaben in Kleinbuchstaben um und speichert das Ergebnis in einer neuen Datei.

Um den Inhalt der neuen Datei zu überprüfen:

cat ~/project/lowercase_user_data.txt

Sie sollten sehen:

user123: [email protected] - last login: 2023-10-15

Erstellen eines umfassenden Beispiels

Erstellen wir eine komplexere Datei, mit der Sie üben können:

echo '  LOG   ENTRY:  Error-404   Page    Not    Found   (HTTP)  ' > ~/project/log_entry.txt

Nun führen wir mehrere Transformationen auf einmal durch:

cat ~/project/log_entry.txt | tr '[:upper:]' '[:lower:]' | tr -d '-()' | tr -s ' ' > ~/project/transformed_log.txt

Dieser Befehl wird:

  1. Alle Großbuchstaben in Kleinbuchstaben umwandeln
  2. Bindestriche, Klammern und Klammern löschen
  3. Aufeinanderfolgende Leerzeichen zu einem einzelnen Leerzeichen zusammenfassen

Um das Ergebnis zu sehen:

cat ~/project/transformed_log.txt

Sie sollten sehen:

 log entry: error404 page not found http

Beachten Sie, dass es immer noch führende und abschließende Leerzeichen gibt. Um diese zu entfernen, bräuchten wir zusätzliche Tools wie sed oder awk, die außerhalb des Rahmens dieses Labs liegen.

Jetzt wissen Sie, wie Sie mehrere tr-Operationen kombinieren können, um komplexe Texttransformationen durchzuführen, wodurch Ihre Textverarbeitungstasks effizienter und effektiver werden.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den tr-Befehl verwenden, ein vielseitiges Werkzeug zur Textmanipulation in Linux. Sie haben seine drei Hauptfunktionen untersucht:

  1. Zeichenübersetzung: Sie haben gelernt, wie Sie Zeichen von einem Satz in einen anderen übersetzen können, beispielsweise Kleinbuchstaben in Großbuchstaben umwandeln. Diese Funktion ist nützlich für die Standardisierung von Textformaten und die Normalisierung von Daten.

  2. Zeichenlöschung: Sie haben entdeckt, wie Sie bestimmte Zeichen aus Text mithilfe der Option -d entfernen können. Diese Fähigkeit ist besonders wertvoll für die Bereinigung von Daten durch das Entfernen unerwünschter Zeichen.

  3. Zeichenzusammenfassung: Sie haben untersucht, wie Sie wiederholte Zeichen mithilfe der Option -s zu einzelnen Exemplaren zusammenfassen können. Diese Funktion ist besonders hilfreich bei der Verarbeitung von Text, der übermäßige Leerzeichen enthält.

  4. Kombinieren von Operationen: Sie haben gelernt, wie Sie mehrere tr-Operationen kombinieren können, um komplexe Texttransformationen effizient durchzuführen.

Diese Fähigkeiten bilden eine solide Grundlage für die Textverarbeitung in Linux-Umgebungen. Der tr-Befehl ist ein leistungsstarkes Werkzeug, das, wenn es mit anderen Linux-Befehlen wie grep, sed und awk kombiniert wird, eine anspruchsvolle Textmanipulation für verschiedene Datenverarbeitungstasks ermöglicht.

Durch das Beherrschen des tr-Befehls haben Sie ein essentielles Werkzeug zu Ihrem Linux-Werkzeugkasten hinzugefügt, das Ihnen helfen wird, Textdaten effizienter und präziser in Ihren zukünftigen Projekten zu verarbeiten.