Wenn Sie vim installiert haben, versuchen Sie Folgendes:
vimdiff file1 file2
oder
vim -d file1 file2
Sie werden es fantastisch finden.
Versuchen Sie es mit sdiff
(man sdiff
)
sdiff -s file1 file2
Wenn Sie den Diff-Ausgabestil von git diff
bevorzugen , können Sie es mit dem --no-index
verwenden Flag zum Vergleichen von Dateien, die sich nicht in einem Git-Repository befinden:
git diff --no-index a.txt b.txt
Unter Verwendung einiger Dateien mit jeweils etwa 200.000 Dateinamenszeichenfolgen habe ich einen Benchmark durchgeführt (mit dem integrierten time
Befehl) diesen Ansatz im Vergleich zu einigen der anderen Antworten hier:
git diff --no-index a.txt b.txt
# ~1.2s
comm -23 <(sort a.txt) <(sort b.txt)
# ~0.2s
diff a.txt b.txt
# ~2.6s
sdiff a.txt b.txt
# ~2.7s
vimdiff a.txt b.txt
# ~3.2s
comm
scheint bei weitem am schnellsten zu sein, während git diff --no-index
scheint der schnellste Ansatz für die Ausgabe im Diff-Stil zu sein.
Aktualisierung 25.03.2018 Sie können den --no-index
tatsächlich weglassen -Flag, es sei denn, Sie befinden sich in einem Git-Repository und möchten nicht nachverfolgte Dateien in diesem Repository vergleichen. Aus den Manpages:
Dieses Formular dient dazu, die angegebenen zwei Pfade im Dateisystem zu vergleichen. Sie können die Option --no-index weglassen, wenn Sie den Befehl in einem von Git kontrollierten Arbeitsbaum ausführen und mindestens einer der Pfade außerhalb des Arbeitsbaums zeigt, oder wenn Sie den Befehl außerhalb eines von Git kontrollierten Arbeitsbaums ausführen.
Sortieren Sie sie und verwenden Sie comm
:
comm -23 <(sort a.txt) <(sort b.txt)
comm
vergleicht (sortierte) Eingabedateien und gibt standardmäßig drei Spalten aus:Zeilen, die eindeutig für a sind, Zeilen, die eindeutig für b sind, und Zeilen, die in beiden vorhanden sind. Durch Angabe von -1
, -2
und/oder -3
Sie können die entsprechende Ausgabe unterdrücken. Daher comm -23 a b
listet nur die Einträge auf, die eindeutig für a sind. Ich verwende den <(...)
Syntax, um die Dateien im laufenden Betrieb zu sortieren, wenn sie bereits sortiert sind, brauchen Sie dies nicht.