Wir zeigen Ihnen einen Trick, um einen Textvergleich unter Linux durchzuführen

Wir zeigen Ihnen einen Trick, um einen Textvergleich unter Linux durchzuführen

Vorwort

Während des Schreibens des Codes werden wir zwangsläufig einige Änderungen am Code vornehmen. Es kommt jedoch häufig vor, dass Sie beim Vornehmen von Änderungen den Unterschied zwischen der geänderten Datei und der Quelldatei nicht erkennen. Hier benötigen wir ein Textvergleichstool, um einen Textvergleich durchzuführen.

Erfahrene Programmierer wissen, dass es unter Windows ein sehr nützliches Textvergleichstool gibt – BeyondCompare. Allerdings handelt es sich dabei um kostenpflichtige Software und viele herkömmliche Unternehmen erlauben die Nutzung gecrackter Software nicht. Darüber hinaus ist es nur unter Windows verfügbar und es gibt keine Linux-Version.

Für die in diesem Artikel vorgestellte Methode zum Textvergleich ist keine Software erforderlich, sondern nur ein Linux-Befehl. Sobald Sie diesen Befehl gelernt haben, mache ich mir keine Sorgen mehr, dass Sie nicht wissen, wie man Textvergleiche durchführt.

Dieser Linux-Befehl ist der Diff-Befehl.

diff ist ein sehr wichtiges Toolprogramm im Unix-System. Es wird zum Vergleichen der Unterschiede zwischen zwei Textdateien verwendet und ist einer der Eckpfeiler der Codeversionsverwaltung.

Sehen wir uns zunächst das grundlegende Befehlsformat an.

diff [OPTION] … DATEIEN

Es ist ganz einfach. Aber es bietet so viele Möglichkeiten, dass Sie Ihr Leben hinterfragen werden. Machen wir uns darüber jetzt keine Gedanken und lernen wir zuerst die am häufigsten verwendeten. Schließlich sollte die Zeit sinnvoll genutzt werden.

-b – Unterschiede bei Leerzeichen innerhalb einer Zeile ignorieren (z. B. wird „Hallo Welt!“ als dasselbe betrachtet wie „Hallo Welt!!“)

-B – leere Zeilen ignorieren

-i – Groß-/Kleinschreibung ignorieren

-r —— Wenn auf „diff“ ein Verzeichnis folgt, werden die Dateien in den Unterverzeichnissen rekursiv verglichen.

Sehen wir uns genauer an, wie man Text vergleicht.

Der Diff-Befehl hat drei Ausgabeformate:

(1) Normales Format (normaler Diff)

(2) Kontextunterschied

(3) Einheitliches Diff

Wir stellen diese drei Ausgabeformate anhand von Beispielen ausführlich vor. Beispielsweise haben wir jetzt eine Datei ac, deren Inhalt wie folgt ist:

Nun erstellen wir eine Kopie, nennen sie bc und ändern in Zeile 3 das kleine „hallo“ in das große „HALLO“, und zwar wie folgt:

(1) Normales Format

Im normalen Format müssen wir keine Optionen hinzufügen, sondern nur wie folgt vergleichen:

Die Ergebnisse nach der Ausführung sind wie folgt:

Lassen Sie uns die Bedeutung des obigen Bildes Zeile für Zeile erklären.

Reihe: 3c3

Die erste 3 gibt an, dass sich die dritte Zeile der Datei ac geändert hat, und die folgende 3 gibt an, dass sich ac geändert hat und zur dritten Zeile von bc geworden ist. Das c in der Mitte steht für die konkrete Veränderung. c steht für Änderung, und andere Typen sind d für Löschung und a für Hinzufügung.

Zeile 2: < Hallo Welt!

Es bedeutet, den Inhalt der Zeile 3 in der ac-Datei zu entfernen, wobei das Kleiner-als-Zeichen die Entfernung anzeigt.

Dritte Zeile: ------

Teiler

Zeile 4: > HALLO Welt!

Es bedeutet, dass der Inhalt von Zeile 3 zur BC-Datei hinzugefügt wird, wobei das Größer-als-Zeichen eine Erhöhung anzeigt.

(2) Kontextformat

Da das normale Format relativ wenige sofortige Informationen enthält, können wir den geänderten Bereich nicht schnell finden und müssen die Datei häufig öffnen, um die Änderungsdetails anzuzeigen. Um mehr Informationen bereitzustellen, wurde das Kontextformat eingeführt. Der Verwendungsbefehl lautet wie folgt:

Unterschied -c ac bc

Darunter steht c für Context, also Kontext.

Die spezifische Bedeutung der Ausgabeergebnisse in der obigen Abbildung ist wie folgt:

Die erste und zweite Zeile geben die Dateien vor und nach der Änderung sowie den Aktualisierungszeitpunkt an. Die folgenden *** 1,4 **** geben den Inhalt der ac-Datei von Zeile 1 bis Zeile 4 an. Das Ausrufezeichen (!) vor „Hallo Welt“ zeigt an, dass die Zeile geändert wurde. Wird die Zeile gelöscht, ist es ein Minuszeichen (-), wird die Zeile hinzugefügt, ist es ein Pluszeichen (+). Die folgenden Zeilen haben ähnliche Bedeutungen.

(3) Zusammenführungsformat

Dieses Format ist eine Kombination aus dem normalen Format und dem Kontextformat und wird auch von git diff verwendet. Der Befehl in diesem Format lautet:

Unterschied -u ac bc 

Die detaillierte Bedeutung der Ausgabeergebnisse in der obigen Abbildung ist wie folgt:

Die erste und zweite Zeile geben die Dateien vor und nach der Änderung sowie den Aktualisierungszeitpunkt an. Das „-hello world!“ am Ende bezieht sich auf den Inhalt in der Originaldatei ac, und „+HELLO world!“ bezieht sich auf den Inhalt in bc.

Zusätzlich zu den oben genannten drei Formaten gibt es noch eine weitere, intuitivere Möglichkeit – das Side-by-Side-Format. Das Befehlsformat für dieses Anzeigeformat ist wie folgt:

Die Darstellung erfolgt in einem parallelen Format, was ebenfalls sehr intuitiv und übersichtlich ist. In Zeile 3 befindet sich ein „|“-Symbol, das darauf hinweist, dass diese Zeile geändert wurde. Darüber hinaus bedeutet ein „<“ am Anfang der Zeile, dass die folgende Datei eine Inhaltszeile weniger hat als die vorherige Datei; ein „>“ am Anfang bedeutet, dass die folgende Datei eine Inhaltszeile mehr hat als die vorherige Datei.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Ein Shell-Befehl pro Tag. Linux-Reihe von Textinhaltsoperationen - ausführliche Erklärung des awk-Befehls
  • Ein Shell-Befehl pro Tag. Linux-Reihe von Textinhaltsoperationen – ausführliche Erklärung des Cut-Befehls
  • Verwenden Sie reguläre Ausdrücke in Linux, um flexibel nach Text in Dateien zu suchen
  • Ein Shell-Befehl pro Tag Linux-Textoperationsreihe - Verwendung des Touch-Befehls
  • Ein Shell-Befehl pro Tag Linux-Textoperationsreihe - ausführliche Erklärung der Befehle head und tail
  • Ein Shell-Befehl pro Tag Linux-Textoperationsreihe - detaillierte Erklärung des Diff-Befehls
  • Ein Shell-Befehl pro Tag Linux-Reihe von Textinhaltsoperationen - ausführliche Erklärung des Grep-Befehls
  • Ein Shell-Befehl pro Tag Linux-Textoperationsreihe - detaillierte Erklärung des WC-Befehls
  • Detaillierte Erläuterung des Befehls zur Konvertierung des Zeilenumbruchformats von Linux-Textdateien und WIN-Textdateien
  • Eine Reihe von Shell-Befehlstextoperationen pro Tag - Tutorial zur Verwendung von Linux DD

<<:  So aktualisieren Sie MySQL 5.6 auf 5.7 unter Windows

>>:  Vue2.x - Beispiel für die Verwendung von Anti-Shake und Throttling

Artikel empfehlen

Schnellstart-Tutorial zum Nginx-Dienst

Inhaltsverzeichnis 1. Einführung in Nginx 1. Was ...

Beispiele für personalisiertes und kreatives Website-Design (30)

Aus diesem Grund haben wir eine Auswahl von 30 Kom...

Detaillierte Erklärung zur Verwendung von awk unter Linux

Bevor wir awk lernen, sollten wir sed, grep, tr, ...

So kapseln Sie Axios einfach in Vue

Axios in Vue einfügen importiere Axios von „Axios...

Neulinge lernen schnell die Schritte zum Erstellen von Website-Symbolen

<br />Original-URL: http://www.lxdong.com/po...

Docker-Fallanalyse: Erstellen eines Redis-Dienstes

Inhaltsverzeichnis 1 Mount-Verzeichnisse und Date...

Detaillierte Erklärung von Promises in JavaScript

Inhaltsverzeichnis Grundlegende Verwendung von Pr...

HTML ist eigentlich die Anwendung zum Erlernen mehrerer wichtiger Tags

Nachdem der Artikel „Dies wird eine Revolution“ er...

Detaillierte Erläuterung des virtuellen DOM in der Vue-Quellcodeanalyse

Warum brauchen wir virtuellen Dom? Virtual DOM wu...

Führen Sie die Schritte zur Installation von MySQL 8.0.x unter Linux aus.

MySQL Einführung in MySQL MySQL war ursprünglich ...

Detaillierter Prozess zum Dekomprimieren und Installieren von mysql5.7.17 zip

1. Adresse herunterladen https://dev.mysql.com/do...

Verwendung des Linux-Befehls tr

1. Einleitung tr wird verwendet, um einen Textabs...