Connect with us

Wie man

So verwenden Sie den rev-Befehl unter Linux

So vergleichen Sie zwei Textdateien im Linux-Terminal

Fatmawati Achmad Zaenuri/Shutterstock

Linuxs rev Befehl kehrt Textstrings um. Dieser Befehl kann entweder mit bereitgestelltem Text oder einer Datei ausgeführt werden und scheint täuschend einfach zu sein. Aber wie bei vielen Befehlszeilen-Dienstprogrammen zeigt sich seine wahre Leistungsfähigkeit, wenn Sie es mit anderen Befehlen kombinieren.

Die rev command ist eines dieser einfachen Linux-Dienstprogramme, die auf den ersten Blick etwas seltsam erscheinen. Es führt eine einzige Funktion aus: es kehrt Strings um. Und abgesehen davon, dass Sie eine Schnellhilfeseite ausdrucken können (-h) und zeigen Sie die Versionsnummer (-V), es akzeptiert keine Befehlszeilenoptionen.

So, rev kehrt Saiten um, und das war’s? Keine Variationen oder Optionen? Nun ja und nein. Ja, es hat keine Permutationen, aber nein, das ist kaum alles. Dieses Tutorial zeigt Ihnen, wie Sie es für leistungsstarke Operationen kombinieren können.

Wenn Sie verwenden rev als Baustein in komplizierteren Befehlssequenzen beginnt es erst richtig seinen Wert zu zeigen. rev gehört zu einer Gruppe von Befehlen (wie tac und yes), die Moderatoren sind. Ihre Nützlichkeit ist leichter zu erkennen, wenn Sie sehen, wie sie die Verwendung anderer Befehle effizienter machen.

Verwenden des rev-Befehls

Wird in der Befehlszeile ohne andere Parameter verwendet, rev nimmt jede eingegebene Eingabe entgegen, kehrt sie um und druckt sie dann im Terminalfenster aus. Es tut dies so lange, bis Sie zum Beenden Strg + C drücken.

rev

Wenn Sie Text eingeben und die Eingabetaste drücken, wird rev Geben Sie die Zeichenfolge in umgekehrter Reihenfolge aus – es sei denn, Sie geben ein a . an Palindrom, selbstverständlich.

Übergeben von Text an Rev

Sie können verwenden echo Text weiterleiten an rev.

echo one two three | rev

Sie können auch verwenden rev um den Inhalt einer ganzen Textdatei Zeile für Zeile umzukehren. In diesem Beispiel haben wir eine Datei mit einer Liste von Dateinamen. Die Datei heißt „filelist.txt“.

rev filelist.txt

Jede Zeile wird aus der Datei gelesen, umgekehrt und dann im Terminalfenster ausgegeben.

Kombinieren von rev mit anderen Befehlen

Hier ist ein Beispiel für die Verwendung von Pipes von Eingaben, die aufrufen rev zweimal.

Dieser Befehl entfernt das letzte Zeichen aus der Textfolge. Dies kann nützlich sein, um Satzzeichen zu entfernen. Wir müssen die verwenden cut Befehl an den Charakter ausziehen.

echo 'Remove punctuation.' | rev | cut -c 2- | rev

Lass uns das aufschlüsseln.

  • echo sendet die Zeichenfolge in den ersten Aufruf an rev.
  • rev dreht die Saite um und leitet sie hinein cut.
  • Die -c (Zeichen) Option sagt cut um eine Zeichenfolge aus der Zeichenfolge zurückzugeben.
  • Die 2- Option sagt cut um den Zeichenbereich von Zeichen zwei bis zum Ende der Zeile zurückzugeben. Wenn eine zweite Nummer angegeben wurde, wie z 2-5, würde der Bereich von zwei bis fünf Zeichen reichen. Keine zweite Zahl bedeutet „bis zum Ende der Zeichenfolge“.
  • Die umgekehrte Zeichenfolge – abzüglich des ersten Zeichens – wird an . übergeben rev wodurch die Zeichenfolge umgekehrt wird, sodass sie wieder in ihrer ursprünglichen Reihenfolge ist.

Da wir das erste Zeichen der Zeichenfolge abgeschnitten haben, haben wir das letzte Zeichen der Zeichenfolge abgeschnitten. Ja, das könntest du mit sed oder awk, aber dies ist eine einfachere Syntax.

Das letzte Wort trennen

Wir können einen ähnlichen Trick anwenden, um das letzte Wort der Zeile zurückzugeben.

Der Befehl ähnelt dem letzten: Auch hier verwendet er rev zweimal. Die Unterschiede liegen in der Art und Weise, wie die cut Befehl wird verwendet, um Teile des Textes auszuwählen.

echo 'Separate the last word' | rev | cut -d' ' -f1 | rev

Hier ist die Befehlsaufschlüsselung:

  • echo sendet die Zeichenfolge in den ersten Aufruf an rev.
  • rev dreht die Saite um und leitet sie hinein cut.
  • Die -d' ' (Trennzeichen) Option sagt cut um eine durch ein Leerzeichen getrennte Zeichenfolge zurückzugeben.
  • Die -f1 Option sagt cut um den ersten Abschnitt der Zeichenfolge das Trennzeichen zurückzugeben. Mit anderen Worten, der erste Teil des Satzes bis zum ersten Leerzeichen.
  • Das umgekehrte erste Wort wird an . übergeben rev wodurch die Zeichenfolge umgekehrt wird, sodass sie wieder in ihrer ursprünglichen Reihenfolge ist.

Da wir das erste Wort des Strings extrahiert haben, haben wir das letzte Wort des Strings abgeschnitten. Das letzte Wort des Satzes war „Wort“, und es ist für uns ausgedruckt.

Zuschneiden von Inhalten aus Dateien

Nehmen wir an, wir haben eine Datei mit einer Liste von Dateinamen, und die Dateinamen stehen in Anführungszeichen. Wir möchten die Anführungszeichen aus den Dateinamen entfernen.

Schauen wir uns die Datei an:

less filelist.txt

Der Inhalt der Datei wird uns angezeigt in less.

Mit dem folgenden Befehl können wir die Satzzeichen an beiden Enden jeder Zeile entfernen. Dieser Befehl verwendet beides rev und cut zweimal.

rev filelist.txt | cut -c 2- | rev | cut -c 2-

Die Dateinamen sind für uns ohne Anführungszeichen aufgeführt.

Der Befehl gliedert sich wie folgt auf:

  • rev kehrt die Zeilen in der Datei um und leitet sie in cut.
  • Die -c (Zeichen) Option sagt cut um eine Folge von Zeichen aus jeder Zeile zurückzugeben.
  • Die 2- Option sagt cut um den Zeichenbereich von Zeichen zwei bis zum Ende jeder Zeile zurückzugeben.
  • Die umgekehrten Zeichenfolgen, abzüglich ihrer ersten Zeichen, werden an . übergeben rev.
  • rev kehrt die Saiten um, sodass sie wieder in ihrer ursprünglichen Reihenfolge sind. Sie sind eingepfiffen cut ein zweites Mal.
  • Die -c (Zeichen) Option sagt cut um eine Folge von Zeichen aus jeder Zeichenfolge zurückzugeben.
  • Die 2- Option sagt cut um den Zeichenbereich von Zeichen zwei bis zum Ende jeder Zeile zurückzugeben. Dies „springt“ über das führende Anführungszeichen, das in jeder Zeile das erste Zeichen ist.

Viel Rohrleitungen

Hier ist ein Befehl, der eine sortierte Liste jeder Dateierweiterung im aktuellen Verzeichnis zurückgibt. Es verwendet fünf verschiedene Linux-Befehle.

ls | rev | cut -d'.' -f1 | rev | sort | uniq

Der Prozess ist einfach:

  • ls listet die Dateien im aktuellen Verzeichnis auf. Diese werden eingespeist rev.
  • rev kehrt die Dateinamen um und leitet sie in cut.
  • cut gibt den ersten Teil jedes Dateinamens bis zu einem Trennzeichen zurück. Die -d'.' erzählt cut um den Punkt „.“ zu verwenden. als Trennzeichen. Der Teil der umgekehrten Dateinamen bis zum ersten Punkt sind die Dateierweiterungen. Diese werden eingespeist rev.
  • rev kehrt die Dateierweiterungen in ihre ursprüngliche Reihenfolge um. Sie werden eingespeist sort.
  • sort sortiert die Dateierweiterungen und leitet die Ergebnisse an uniq.
  • uniq gibt eine einzelne Auflistung für jeden Typ einer eindeutigen Dateierweiterung zurück. Beachten Sie, dass der gesamte Dateiname aufgeführt wird, wenn keine Dateierweiterung vorhanden ist (z. B. für das Makefile und die Verzeichnisse Help und gc_help).

Um dem Ganzen den letzten Schliff zu geben, fügen Sie die -c (count) Befehlszeilenoption zum uniq Befehl.

ls | rev | cut -d'.' -f1 | rev | sort | uniq -c

Wir erhalten nun eine sortierte Liste der verschiedenen Dateitypen im aktuellen Verzeichnis mit der jeweiligen Anzahl.

Das ist ein ziemlich raffinierter Einzeiler!

DrawroF og ot DrawkcaB gnioG

Manchmal muss man rückwärts gehen, um vorwärts zu kommen. Und im Team kommt man meist am schnellsten voran.

Hinzufügen rev zu Ihrem Repertoire an Go-to-Befehlen, und Sie werden es bald verwenden, um sonst komplizierte Befehlssequenzen zu vereinfachen.

Continue Reading
Click to comment

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Tendencia