Wie vergleiche ich Dateien nach Inhalt in Windows oder Linux? Ein Überblick über Tools für den visuellen Vergleich und die Lösung von Zusammenführungskonflikten Vergleichen von Dateien nach Größe Linux

Um zwei oder mehr Dateien zu vergleichen, hat Linux den Befehl diff. Es kann sowohl einzelne Dateien als auch Verzeichnisse vergleichen. Beachten Sie die Syntax, Optionen diff-Befehle und einige Anwendungsbeispiele.

diff-Befehlssyntax

Der Befehl diff hat die folgende Syntax:

Diff [Optionen] Dateien oder Verzeichnisse

Wir geben Optionen an und geben zwei oder mehr Dateien oder Verzeichnisse ein, die wir vergleichen müssen.

diff-Befehlsoptionen

Betrachten Sie die Hauptoptionen des diff-Befehls. Ich werde nur die Optionen berücksichtigen, die ich selbst am häufigsten verwende.

-EIgnorieren Sie Änderungen, die mit dem Hinzufügen eines Tabulatorzeichens im Text verbunden sind.
-BIgnorieren Sie Änderungen im Zusammenhang mit dem Hinzufügen von Leerzeichen.
-wIgnorieren Sie Änderungen im Zusammenhang mit dem Hinzufügen von Leerzeichen und Tabulatoren.
-Bneue Leerzeilen ignorieren.
-p (oder --show-c-Funktion)den Namen der C-Sprachfunktion anzeigen, in der die Änderungen gefunden wurden.
-y (oder --nebeneinander)Ergebnisse in zwei Spalten anzeigen.
-RVerzeichnisse rekursiv durchsuchen.
-X DATEISchließen Sie Dateien von der Suche aus, deren Namen mit den Mustern in der Datei FILE übereinstimmen.
-d (oder --minimal)Versuchen Sie, so wenige Änderungen wie möglich zu finden (d. h. falsch positive Ergebnisse zu eliminieren).

Beispiele für die Verwendung des diff-Befehls

Vergleich zweier Textdateien

Für einen einfachen Vergleich von zwei Textdateien Führen Sie mit den Namen myfile1 und myfile2 den Befehl im Terminal aus:

Diff meinedatei1 meinedatei2

Es ist praktisch, die Ausgabe des Befehls diff in eine Datei mit der Erweiterung diff umzuleiten. Mehrheitlich Texteditoren unter Linux, wie Gedit, erkennen diese Datei und heben ihre Syntax hervor. Um das Ergebnis des Vergleichs an die Datei changes.diff weiterzuleiten, müssen Sie das Stream-Umleitungssymbol (>) verwenden:

Diff myfile1 myfile2 > changes.diff

Vergleich von Verzeichnissen mit Textdateien

Betrachten Sie ein Beispiel für den Vergleich zweier Verzeichnisse (mydir1 und mydir2), die Textdateien enthalten. Der Hauptunterschied hier zum obigen Beispiel besteht darin, dass wir die Option -r hinzufügen, was bedeutet, Dateien in Verzeichnissen rekursiv zu durchlaufen.

Diff -r mydir1 mydir2 > changes.diff

Nehmen wir nun an, dass die Verzeichnisse, in denen wir Dateien vergleichen, viel "Müll" enthalten, den wir nicht vergleichen sollten. Lassen Sie uns eine ExcludeFiles-Datei erstellen und darin die Muster und Dateinamen schreiben, die wir nicht vergleichen sollten. Der Inhalt von excludeFiles könnte beispielsweise so aussehen:

*.o Änderungsprotokoll* *.bak *.exe

Lassen Sie uns nun den Befehl diff anweisen, beim Vergleichen von Verzeichnissen unsere Datei excludeFiles zu verwenden:

Diff -r -X excludeFiles mydir1 mydir2 > changes.diff

Daher vergleichen wir Dateien, deren Namen nicht mit den Mustern in der Datei excludeFiles übereinstimmen, beispielsweise vasya.exe oder ChangeLog12.

Lassen Sie uns ein paar weitere Optionen hinzufügen, die oben beschrieben wurden, um das Ergebnis des Vergleichs zu verbessern:

Diff -rwBd -X excludeFiles mydir1 mydir2 > changes.diff

Wir vergleichen Dateien in den Verzeichnissen mydir1 und mydir2, ignorieren Änderungen im Zusammenhang mit dem Hinzufügen von Leerzeilen, Leerzeichen und Tabulatoren und verwenden Dateinamenmuster in excludeFiles, um unnötige Dateien vom Vergleich auszuschließen.

Abschluss

Weitere Informationen zur Verwendung des Befehls diff in Ihrer Linux-System Sie können erhalten, indem Sie den Befehl ausführen:

Mann diff

Es gibt auch Programme, mit denen Sie Dateien vergleichen können GUI. Zum Beispiel das Meld-Programm, das visuell anzeigt, wo und was sich in den Dateien geändert hat.

), ihre Vergleiche sowie Vergleiche von GUI-Clients für sie. Es gab auch Diskussionen über IDE-Plugins für die Arbeit mit Git und Mercurial. Aber praktisch es gab keine infosüber Tools für den visuellen Vergleich und die Lösung von Zusammenführungskonflikten.

Ich bin kürzlich von mercurial (was ich immer noch bequemer und logischer finde) zu git "gesprungen", weil die überwiegende Mehrheit der Projekte, an denen ich interessiert bin, git verwenden und auf github gehostet werden. In diesem Zusammenhang stellte sich die Frage nach einer Überarbeitung des Instrumentenarsenals, insbesondere der Frage Werkzeugauswahl visueller Vergleich und Zusammenführen (Vergleichen und Zusammenführen). Um den Mangel an Informationen über Habré auszugleichen, habe ich mich entschlossen, diese Mini-Rezension zu schreiben. Wie sie sagen - in heißer Verfolgung.

Unter dem Schnitt finden Sie auch Beispiele für Git-Einstellungen zur Verwendung mit DiffMerge und WinMerge unter Windows. Ich denke, es wird viel Zeit sparen.

Name Besonderheiten Plattform

KDiff3

Git und WinMerge

1) Zum Verzeichnis hinzufügen c:/git/libexec/git-core/mergetools/
winmerge-Datei mit folgendem Inhalt:

Diff_cmd () ( "c:/Program Files (x86)/WinMerge/WinMergeU.exe" \ "$LOCAL" "$REMOTE" >/dev/null 2>&1 ) merge_cmd () ( "c:/Program Files (x86 ) )/WinMerge/WinMergeU.exe" \ "$PWD/$LOCAL" "$PWD/$REMOTE" "$PWD/$MERGED" >/dev/null 2>&1 status=$? )
Wenn Git Änderungen nicht automatisch zusammenführen kann, tritt ein Zusammenführungskonflikt auf und Zusammenführungsmarkierungen werden der widersprüchlichen Datei hinzugefügt (<<<<<<<, =======, и >>>>>>>). Sie sind erforderlich, um den Konflikt mit Tools von Drittanbietern zu lösen.
Betrachten Sie eine Datei readme.txt die durch Zusammenlegung von Zweigen entsteht Meister und neu im obigen Beispiel:

<<<<<<< HEAD master str ======= new str >>>>>>> neu
Wir können die Konfliktdatei mit WinMerge öffnen, um den Konflikt zu lösen.

Dadurch wird das Zwei-Wege-Merge-Tool geöffnet:

Basierend auf der beschriebenen Logik werden wir den Zusammenführungsbefehl umschreiben merge_cmd auf die folgende Weise:
merge_cmd () ( "c:/Program Files (x86)/WinMerge/WinMergeU.exe" \ "$MERGED" >/dev/null 2>&1 status=$? )
Grundsätzlich sind beide Möglichkeiten gleichwertig.

2) Bearbeiten .gitconfig
tool=winmerge cmd="winmerge" tool=winmerge cmd="winmerge" trustExitCode=false keepBackup=false
Die letzte Zeile bricht das Speichern der Sicherungsdateien im Repository-Verzeichnis ab.

3) Erstellen wir einen Konflikt beim Zusammenführen zweier Zweige (siehe Beispiel mit DiffMerge).
git difftool master new // vergleiche zwei Branches

Verwenden Sie den Befehl, um den Konflikt beim Zusammenführen von Zweigen zu lösen
Git-Merge-Tool

Webmaster oder Websitebesitzer müssen häufig zwei Dateien nach Inhalt vergleichen. Dieser Artikel zeigt Ihnen, wie Sie zwei Dateien vergleichen. Alle mir bekannten Methoden zum Vergleich von Textdateien und Skripten (html, css, php usw.) werden hier beschrieben.

Methode 1 Verschmelzen

verschmelzen- ein grafisches Tool zum Ermitteln von Unterschieden und Zusammenführen von zwei Dateien und zwei Verzeichnissen. Meld ist ein visuelles Tool zum Vergleichen und Zusammenführen von Dateien und Verzeichnissen für Linux. Meld richtet sich hauptsächlich an Entwickler. Es kann jedoch für jeden Benutzer nützlich sein, der Bedarf hat gutes Werkzeug um Dateien und Verzeichnisse zu vergleichen.

In Meld können Sie zwei oder drei Dateien oder zwei oder drei Verzeichnisse vergleichen. Sie können Ihre Arbeitskopie von gängigen Versionskontrollsystemen wie CVS, Subversion, Bazaar-NG und Mercurial anzeigen. Meld präsentierte sich der Mehrheit Linux-Distributionen(Ubuntu, Suse, Fedora usw.) und ist in ihren Hauptrepositorys vorhanden.

# aptitude install meld

Methode 2: Vergleichen des Inhalts zweier Dateien in WinMerge.

Mit dem kostenlosen Programm WinMerge können Sie nicht nur den Inhalt von Dateien vergleichen, sondern auch den Inhalt ganzer Ordner. WinMerge ist ein Open Source Diff- und Merge-Tool für Windows. WinMerge kann sowohl Dateien als auch Ordner vergleichen und die Unterschiede in visueller Textform anzeigen, die leicht zu verstehen und zu verarbeiten ist.

Öffnen Sie nach der Installation den Menüpunkt „Datei“ – „Öffnen“. Wählen Sie die zu vergleichenden Dateien aus. Klicken Sie dazu auf die Schaltfläche „Durchsuchen“ und wählen Sie die Datei aus. Klicken Sie nach Auswahl der Dateien auf die Schaltfläche „OK“.

Sie können Dateien auch in WinMerge bearbeiten. Nach dem Schließen des Vergleichsfensters fordert Sie das Programm auf, die Änderungen an den Dateien zu speichern.

Methode 3. diff

diff- ein Dateivergleichsprogramm, das den Unterschied zwischen zwei Dateien anzeigt.

    Um Verzeichnisse zu vergleichen, verwenden Sie diesen Befehl: $ diff -qr< current-directory> < backup-directory>

Methode 4Vergleichen

Kompare - zeigt Unterschiede zwischen Dateien an. Kann den Inhalt von Dateien oder Verzeichnissen vergleichen sowie Patch-Dateien erstellen, anzeigen und anwenden. Kompare ist ein grafisches Diff-Dienstprogramm, mit dem Sie Unterschiede in Dateien finden und sie zusammenführen können. Geschrieben in Qt und hauptsächlich für KDE entworfen. Hier sind die Hauptmerkmale:

    Unterstützung für mehrere Diff-Formate;

    Support-Vergleich Linux-Datei und Verzeichnisse;

    Unterstützung für das Anzeigen von Diff-Dateien;

    Anpassbare Schnittstelle;

    Patches erstellen und auf Dateien anwenden.

Methode 5. Dateien in Total Commander vergleichen

IN Totaler Kommandant Es gibt ein Tool zum Vergleichen von Dateien nach Inhalt, mit dem Sie den Inhalt nicht nur vergleichen, sondern auch bearbeiten und von einer Datei in eine andere kopieren können.

Nach dem Start von Total Commander – wählen Sie in einem der Panels (Einfügen-Taste) die erste Datei zum Vergleich – öffnen Sie im zweiten Panel den Ordner mit der zweiten Datei und platzieren Sie den Cursor darauf. Wir nennen das Vergleichsprogramm: „Dateien → Inhaltsvergleich“.

Um Änderungen an der Datei vorzunehmen, klicken Sie einfach auf die Schaltfläche „Bearbeiten“. Das Programm verfügt über die Funktionen Kopieren und Zurücksetzen, Suchen und Ändern der Codierung. Wenn Sie Änderungen an der Datei vorgenommen haben, werden Sie nach dem Schließen des Vergleichsfensters aufgefordert, die Änderungen zu speichern.

Methode 6: Vergleichen von Dateien in Notepad++

    Unterstützte Betriebssysteme: Windows, lauffähig unter Linux

Notepad++ kann keine Dateien vergleichen. Damit diese Funktionalität in Notepad ++ angezeigt wird, müssen Sie das Plugin "Vergleichen" installieren.

Starten Sie den Editor - gehen Sie zum Menüpunkt "Plugins" - "Plugin Manager" - "Plugin Manager anzeigen". Wählen Sie im neuen Fenster das Plugin „Vergleichen“ aus und klicken Sie auf die Schaltfläche „Installieren“.

Öffnen Sie nach der Installation des Plugins die beiden Dateien und wählen Sie das Menü „Plugins“ – „Vergleichen“ – „Vergleichen (Alt + D)“. Das Ergebnis des Dateivergleichs wird in separaten Panels präsentiert. Neben Zeilen, in denen Unterschiede gefunden werden, wird ein Warnzeichen angezeigt.

Methode 7: Vergleichen Sie Dateien über die Windows-Befehlszeile

Vergleich mit Befehlszeile Windows (cmd.exe) erlaubt Ihnen nicht, Dateien zu bearbeiten, aber Sie können mit dieser Methode einfach den Inhalt von Dateien vergleichen.

Um einen Befehl aufzurufen Windows-Strings Gehen Sie zu „Start“ – „Alle Programme“ – „Zubehör“ – „Eingabeaufforderung“ oder drücken Sie „Windows + R“, geben Sie cmd ein und drücken Sie die Eingabetaste.

Geben Sie in der Befehlszeile den Befehl ein:

fc / N Pfad zur ersten Datei Pfad zur zweiten Datei

Egal auf welchem ​​System ich am Code herumbasteln muss, früher oder später wird es zu teuer zum Vergleichen verschiedene Versionen Quellen. Hier sind einfache kostenlose Dienstprogramme zum Auffinden von Unterschieden in Dateien unter Linux, Windows und Mac. Das allgemeine Startformat ist Datei1 Datei2.

Unter Windows leistet die Aufgabe, den Inhalt von Dateien (und Verzeichnissen, was manchmal nicht nutzlos ist) zu vergleichen, hervorragende Arbeit - WinMerge. Licht. Nicht an eine IDE gebunden. Geschrieben in Qt und plattformübergreifend - sollte auch auf nix laufen. Neben Dateien kann es auch den Inhalt von Verzeichnissen vergleichen (einschließlich solcher, die auf Regexp-Masken basieren). Sie können zusätzliche Plugins hinzufügen.

WinMerge ist ein plattformübergreifendes Dateivergleichsprogramm und mehr

Mac - opendiff. Stellt eine separate Xcode-Komponente dar. Ganz eigenständig wird von der Befehlszeile aus gestartet. Unterschiede sind hellgrau hervorgehoben, es kann aber übrigens mit Pfeilen angezeigt werden, was wo hinzugefügt wurde. Kann Merge durchführen (key -merge). Wenn Sie zusätzlich zu den verglichenen Dateien nach dem Schlüssel -ancestor eine gemeinsame Vorfahrendatei angeben, wird damit verglichen. Ordner vergleichen können.

opendiff-Dienstprogramm - kostenloses Werkzeug Vergleichen von Dateien auf einem Mac-System

Linux- . Verfügbar auf allen Plattformen (Windows, Mac, Linux), da es auch in Qt geschrieben ist. Kann bis zu drei Dateien oder Verzeichnisse vergleichen. Unterstützt die Möglichkeit, Änderungen zusammenzuführen, mit Bearbeitungsunterstützung für die manuelle Konfliktlösung.

kdiff3-Dienstprogramm - Vergleichen von zwei Dateien

UPDATE 18.10.2013

Wenn Sie Gnom auf Nix ausführen, ist meld eine gute Wahl. Integration mit gängigen Versionskontrollsystemen (Git, Subversion usw.), Zusammenführungstools - automatisches Zusammenführen, Bearbeiten mit sofortigem Aufnehmen aktueller Unterschiede, Syntaxhervorhebung. Es gibt Portierungen für OS X Windows.

Nun, bis zum Äußersten (wenn Sie nichts von Drittanbietern einfügen können) - ein unansehnlicher Unterschied unter der Befehlszeile kommt zur Rettung (es ist auf Nix-ähnlichen Systemen vorinstalliert, einschließlich Macs und Solaris). Flexibel. Man kann lange und lustvoll mit den Einstellungen spielen, um Unterschiede anhand der Maske (-F) anzeigen zu können, einen Vergleich in den üblichen zwei Spalten zu bekommen (Taste –side-by-side), etc. Bei umfangreichen unbekannten Dateien bevorzuge ich die Ausgabe in einem „kontextuellen“ Format, wenn nicht nur die geänderten Zeilen angezeigt werden, sondern auch benachbarte.

Für den Vergleich von mehr als zwei Dateien kann diff3 geeignet sein.