In der Linux-Welt ist das Verwalten und Vergleichen von Dateien eine häufige Aufgabe für Systemadministratoren und Entwickler. Die Möglichkeit, Dateien Zeile für Zeile zu vergleichen, ist entscheidend für die Identifizierung von Unterschieden, das Debuggen von Code und die Gewährleistung der Datenintegrität. Ein leistungsstarkes Tool, das diesen Prozess erleichtert, ist dasdiff>
Befehl. In diesem Artikel erfahren Sie, wie Sie das verwendendiff>
Befehl zum zeilenweisen Vergleichen von Dateien unter Linux.
Inhaltsverzeichnis
- Grundlegende Syntax des Diff-Befehls
- Verfügbare Optionen im Befehl diff
- Praktische Implementierung von Wie vergleiche ich Dateien Zeile für Zeile unter Linux? :
- Vergleich zweier Dateien
- Löschen einer Zeile in Dateien mit dem Befehl diff
- Unterschiede im Kontextmodus anzeigen
- Unterschiede im einheitlichen Modus anzeigen
- Groß- und Kleinschreibung beim Vergleichen zwischen Dateien
- Diff-Version wird angezeigt
Den diff-Befehl verstehen
diff steht für Unterschied .Derdiff>
command ist ein vielseitiges Dienstprogramm, das auf den meisten Linux-Distributionen vorinstalliert ist. Sein Hauptzweck besteht darin, den Inhalt zweier Dateien zu vergleichen und die Unterschiede zwischen ihnen anzuzeigen. Der Befehl bietet eine umfassende Möglichkeit, Änderungen, Ergänzungen und Löschungen in einem klaren und lesbaren Format hervorzuheben.
Mit diesem Befehl werden die Unterschiede in den Dateien angezeigt, indem die Dateien Zeile für Zeile verglichen werden. Im Gegensatz zu seinen Kollegen cmp Und Komm , sagt es uns, welche Zeilen in einer Datei geändert werden müssen, um die beiden Dateien identisch zu machen.
Java-Programme
Es ist wichtig, sich daran zu erinnern diff verwendet bestimmte spezielle Symbole Und Anweisungen die erforderlich sind, um zwei Dateien identisch zu machen. Darin erfahren Sie, wie Sie die erste Datei so ändern, dass sie mit der zweiten Datei übereinstimmt.
Grundlegende Syntax des Diff-Befehls
Die grundlegende Syntax derdiff>
Der Befehl lautet wie folgt:
diff [OPTION]... FILE1 FILE2>
Hier: ` FILE1`>
und ` FILE2`>
sind die beiden Dateien, die Sie vergleichen möchten.
Das ` OPTION`>
Mit dem Flag können Sie das Verhalten des ` anpassen diff`>
Befehl.
Verfügbare Optionen im Befehl diff
Möglichkeit | Beschreibung |
---|---|
| Ausgabeunterschiede im Kontextmodus |
| Ausgabeunterschiede im einheitlichen Modus (prägnanter) |
| Führen Sie einen Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung durch |
–ignore-all-space | Leerzeichen beim Zeilenvergleich ignorieren |
-knapp | Es wird nur ausgegeben, ob sich Dateien unterscheiden, keine Details |
–rekursiv | Verzeichnisse rekursiv vergleichen |
| Zeigen Sie die Ausgabe nebeneinander an |
Praktische Implementierung von Wie vergleiche ich Dateien Zeile für Zeile unter Linux? :
Vergleich zweier Dateien
Vergleichen Sie Dateien Zeile für Zeile unter Linux.
Nehmen wir an, wir haben zwei Dateien mit Namen a.txt Und b.txt Enthält 5 indische Bundesstaaten.
cat a.txt cat b.txt>

Anzeigen des Inhalts von Dateien mit dem Befehl cat
Wenn wir nun den Befehl diff ohne Option anwenden, erhalten wir die folgende Ausgabe:
diff a.txt b.txt>

Datei zeilenweise unter Linux vergleichen
Werfen wir einen Blick darauf, was diese Ausgabe bedeutet. Die erste Zeile des diff Die Ausgabe enthält:
- Zeilennummern entsprechend der ersten Datei,
- Ein besonderes Symbol und
- Zeilennummern, die der zweiten Datei entsprechen.
Wie in unserem Fall, 0a1 was bedeutet nach Zeilen 0 (ganz am Anfang der Datei) müssen Sie hinzufügen Tamil Nadu um mit der zweiten Dateizeilennummer 1 übereinzustimmen. Anschließend erfahren wir, um welche Zeilen es sich in jeder Datei handelt, denen das Symbol vorangestellt ist:
- Zeilen mit vorangestelltem a < sind Zeilen aus der ersten Datei.
- Zeilen mit vorangestelltem > sind Zeilen aus der zweiten Datei.
- Die nächste Zeile enthält 2,3c3 Das bedeutet, dass Zeile 2 bis Zeile 3 in der ersten Datei geändert werden muss, damit sie mit Zeile 3 in der zweiten Datei übereinstimmt. Anschließend werden uns die Zeilen mit den oben genannten Symbolen angezeigt.
- Die drei Striche (—) Trennen Sie lediglich die Zeilen von Datei 1 und Datei 2.
Als Zusammenfassung, um beide Dateien identisch zu machen, fügen Sie zunächst hinzu Tamil Nadu in der ersten Datei ganz am Anfang, um mit Zeile 1 der zweiten Datei übereinzustimmen, danach ändern Sie Zeile 2 und 3 der ersten Datei, d. h. Uttar Pradesh Und Kalkutta mit Zeile 3 der zweiten Datei, d.h. Andhra Pradesh . Danach ändern Sie Zeile 5 der ersten Datei, d. h. Jammu und Kaschmir mit Zeile 5 der zweiten Datei, d.h. Uttar Pradesh .
Löschen einer Zeile in Dateien mit dem Befehl diff
Betrachten Sie das Szenario, in demdiff>
weist darauf hin, dass eine Zeile gelöscht werden muss. Angesichts zweier Dateien:a.txt>
Undb.txt>
:

Anzeigen des Inhalts von Dateien mit dem Befehl cat
diff a.txt b.txt>

Eine Zeile in einer Datei löschen
Hier oben Ausgabe 3d2 bedeutet, Zeile 3 der ersten Datei zu löschen, d. h. Telangana damit beide Dateien synchronisieren in Zeile 2.
Unterschiede im Kontextmodus anzeigen
Um Unterschiede im Kontextmodus anzuzeigen, verwenden Sie die -C Möglichkeit. Versuchen wir dies anhand eines Beispiels zu verstehen: Wir haben zwei Dateien Datei1.txt Und Datei2.txt :

Anzeigen des Inhalts von Dateien mit dem Befehl cat
diff -c file1.txt file2.txt>

Anzeigeunterschied im Kontextmodus
In der obigen Ausgabe:
- Die erste Datei wird mit „gekennzeichnet“.
***`>
, und die zweite Datei wird mit ` bezeichnet---`>
. - Die Zeile mit `
***************`>
dient als Trennzeichen. - Die ersten beiden Zeilen enthalten Informationen zu Datei 1 und Datei 2 und zeigen den Dateinamen, das Änderungsdatum und die Änderungszeit an.
- Darauf folgen drei Sternchen „
***`>
gefolgt von einem Zeilenbereich aus der ersten Datei (Zeilen 1 bis 4). Vier Sternchen `****`>
komm als nächstes. Der Inhalt der ersten Datei wird dann mit spezifischen Indikatoren angezeigt:- Bei unveränderter Zeile werden ihr zwei Leerzeichen vorangestellt.
- Wenn eine Zeile geändert werden muss, wird ihr ein Symbol und ein Leerzeichen vorangestellt. Die Symbole bedeuten:
-
`+`>
: Eine Zeile in der zweiten Datei, die zur ersten Datei hinzugefügt wird, um identische Ergebnisse zu erzielen. -
`-`>
: Eine Zeile in der ersten Datei, die für identische Ergebnisse gelöscht werden soll.
-
- Drei Striche `
---`>
gefolgt von einem Zeilenbereich aus der zweiten Datei (Zeilen 1 bis 4), getrennt durch ein Komma. Vier Striche `----`>
folgen, und der Inhalt der zweiten Datei wird angezeigt.
Unterschiede im einheitlichen Modus anzeigen
Um Unterschiede im einheitlichen Modus anzuzeigen, verwenden Sie die -In Möglichkeit. Es ähnelt dem Kontextmodus, aber es zeigt keine redundanten Informationen an oder es zeigt die Informationen in prägnanter Form an.

Anzeigen des Inhalts von Dateien mit dem Befehl cat
diff -u file1.txt file2.txt>

Anzeigeunterschied im Unified-Modus
In der obigen Ausgabe:
- Die erste Datei ist mit „ gekennzeichnet
---`>
, und die zweite Datei wird durch ` gekennzeichnet+++`>
. - Die ersten beiden Zeilen enthalten Informationen zu Datei 1 und Datei 2, einschließlich Datum und Uhrzeit der Änderung.
- Danach „
@@ -1>
`,`>
4 +1`>
,`>
4 @@`>
bezeichnet den Zeilenbereich für beide Dateien. In diesem Fall handelt es sich um die Zeilen 1 bis 4 in beiden Dateien. - Die folgenden Zeilen stellen den Inhalt der Dateien mit spezifischen Indikatoren dar:
- Unveränderte Zeilen werden ohne Präfix angezeigt.
- Den Zeilen in der ersten zu löschenden Datei wird das Präfix vorangestellt
->
. - Den Zeilen in der zweiten Datei, die hinzugefügt werden soll, wird das Präfix vorangestellt
+>
.
In diesem Beispiel zeigt die Ausgabe, dass die Zeilen, die mv und comm enthalten, aus der ersten Datei gelöscht werden müssen, um beide Dateien identisch zu machen (file1.txt>
), und die Zeilen, die diff und comm enthalten, müssen hinzugefügt werden.
Groß- und Kleinschreibung beim Vergleichen zwischen Dateien
Standardmäßig ist „ diff`>
Groß- und Kleinschreibung wird beachtet. Um einen Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung durchzuführen, verwenden Sie das ` -i`>
Möglichkeit:

Anzeigen des Inhalts von Dateien mit dem Befehl cat
Derdiff>
Der Befehl wird dann verwendet, um diese Dateien mit dem zu vergleichen-i>
Option, die den Vergleich unabhängig von der Groß-/Kleinschreibung macht.
diff -i file1.txt file2.txt>

Beim Vergleich wird die Groß- und Kleinschreibung nicht beachtet
2d1>
: Dies weist auf eine Änderung in Zeile 2 der ersten Datei hin (file1.txt>
). Derd>
steht für „Löschen“ und besagt, dass Zeile 2 aus der ersten Datei gelöscht werden soll.>
: Diese Zeile gibt den Inhalt der zu löschenden Zeile an. In diesem Fall ist es mv.
3a3>
: Dies weist auf einen Zusatz in Zeile 3 der ersten Datei hin (file1.txt>
). Dera>
steht für add und besagt, dass an Position 3 eine Zeile hinzugefügt werden soll.>diff>
: Diese Zeile stellt den hinzuzufügenden Inhalt dar. In diesem Fall ist es diff.
Zusammenfassend sagt uns die Ausgabe, dass wir die Zeile mit mv aus der ersten Datei löschen müssen, um beide Dateien identisch zu machen (Groß- und Kleinschreibung ignorieren).file1.txt>
) und fügen Sie den Zeilenunterschied an derselben Position hinzu. Derdiff>
Befehl, mit dem-i>
Option ermöglicht einen Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung, sodass mv und MV während der Analyse als gleich betrachtet werden.
Anzeigendiff>
Ausführung
Um die Version von „ diff`>
auf Ihrem System installiert ist, verwenden Sie das ` --version`>
Möglichkeit:
diff --version>

Version des Diff-Befehls wird angezeigt
Dieser Befehl liefert Informationen über die Version, Lizenzierung und Autoren der Datei „ diff`>
Dienstprogramm.
Häufig gestellte Fragen zum Diff-Befehl – FAQs
Wie verwende ich diediff>
Befehl zum zeilenweisen Vergleich zweier Dateien unter Linux?
Um zwei Dateien Zeile für Zeile zu vergleichen, verwenden Sie die
diff>
Befehl verwenden Sie einfach die folgende Syntax:diff file1.txt file2.txt>Dieser Befehl zeigt die Unterschiede zwischen den beiden Dateien an und hebt Hinzufügungen, Löschungen und Änderungen hervor.
Kann ich Leerzeichenunterschiede beim Vergleichen von Dateien mit dem ignorieren?diff>
Befehl?
Ja das
diff>
Der Befehl liefert die-w>
oder--ignore-all-space>
Option zum Ignorieren von Leerzeichenunterschieden. Zum Beispiel:diff -w file1.txt file2.txt>Dies ist besonders nützlich, wenn Sie Codedateien vergleichen, bei denen Änderungen in Einrückung oder Abstand keine wesentliche Rolle spielen.
Pandas erstellen Datenrahmen
Wie kann ich mit dem eine Patch-Datei erstellen?diff>
Befehl?
Um eine Patch-Datei zu erstellen, die die Unterschiede zwischen zwei Dateien darstellt, verwenden Sie die
-u>
Option und leiten Sie die Ausgabe in eine Datei um:diff -u file1.txt file2.txt>mypatch.patch>Die generierte Patchdatei kann später angewendet werden, um eine andere Datei mit den Änderungen zu synchronisieren.
Was ist das einheitliche Format?diff>
Ausgabe und wie unterscheidet sie sich vom Kontextformat?
Das einheitliche Format (`
-u`>
Option) in `diff`>
Die Ausgabe bietet eine prägnantere und lesbarere Darstellung der Unterschiede im Vergleich zum Kontextformat (`-c`>
Möglichkeit). Es zeigt Änderungen in einer kompakteren Form an und erleichtert so das Verständnis von Änderungen zwischen Dateien.
Wie vergleiche ich rekursiv zwei Verzeichnisse unter Linux mit demdiff>
Befehl?
Um zwei Verzeichnisse und deren Inhalte rekursiv zu vergleichen, verwenden Sie die `
-r`>
oder `--recursive`>
Option mit derdiff>
Befehl:diff -r directory1/ directory2/>Dieser Befehl vergleicht alle Dateien in den angegebenen Verzeichnissen und liefert detaillierte Informationen über die Unterschiede.
Abschluss
In der Linux-Welt ist der Vergleich von Dateien eine häufige Aufgabe für Systemadministratoren und Entwickler. Das ` diff>
Der Befehl ist ein praktisches Tool, das bei diesem Prozess hilft. In diesem Artikel wird erläutert, wie man „ verwendet diff`>
um Dateien Zeile für Zeile unter Linux zu vergleichen. Es behandelt die grundlegende Syntax, wichtige Optionen wie den Kontextmodus und den einheitlichen Modus sowie praktische Anwendungen wie das Erstellen von Patchdateien und den rekursiven Vergleich von Verzeichnissen. Egal, ob Sie Code debuggen oder die Dateiintegrität sicherstellen, das Verständnis und die Beherrschung des „ diff`>
Der Befehl ist für eine effiziente Dateiverwaltung unter Linux unerlässlich.