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.