Linux diff-Befehl
Vollständige Liste der Linux-Befehle
Der Linux diff-Befehl wird verwendet, um Unterschiede zwischen Dateien zu vergleichen.
diff vergleicht Textdateien Zeile für Zeile. Wenn Verzeichnisse zum Vergleich angegeben werden, vergleicht diff Dateien mit demselben Namen in den Verzeichnissen, vergleicht jedoch keine Unterverzeichnisse darin.
Syntax
diff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2]
Parameters:
- -<Anzahl der Zeilen> Gibt an, wie viele Textzeilen angezeigt werden. Dieser Parameter muss zusammen mit dem Parameter -c oder -u verwendet werden.
- -a oder --text Standardmäßig vergleicht diff nur Textdateien Zeile für Zeile.
- -b oder --ignore-space-change Überprüft keine Unterschiede bei Leerzeichen.
- -B oder --ignore-blank-lines Überprüft keine Leerzeilen.
- -c Zeigt den vollständigen Inhalt an und markiert die Unterschiede.
- -C<Anzahl der Zeilen> oder --context<Anzahl der Zeilen> Entspricht der Ausführung des Befehls "-c-<Anzahl der Zeilen>".
- -d oder --minimal Verwendet einen anderen Algorithmus, um Vergleiche in kleineren Einheiten durchzuführen.
- -D<Makroname> oder ifdef<Makroname> Das Ausgabeformat dieses Parameters kann für Präprozessor-Makros verwendet werden.
- -e oder --ed Das Ausgabeformat dieses Parameters kann für ed-Skriptdateien verwendet werden.
- -f oder --forward-ed Das Ausgabeformat ist ähnlich wie das von ed-Skriptdateien, zeigt jedoch die Unterschiede in der Reihenfolge der Originaldatei an.
- -H oder --speed-large-files Kann den Vergleich beschleunigen, wenn große Dateien verglichen werden.
- -I<Zeichen oder Zeichenkette> oder --ignore-matching-lines<Zeichen oder Zeichenkette> Wenn sich zwei Dateien in bestimmten Zeilen unterscheiden und diese Zeilen alle das angegebene Zeichen oder die angegebene Zeichenkette aus der Option enthalten, werden die Unterschiede zwischen den beiden Dateien nicht angezeigt.
- -i oder --ignore-case Unterschiede in der Groß-/Kleinschreibung werden nicht geprüft.
- -l oder --paginate Sendet die Ergebnisse zur Paginierung an das Programm pr.
- -n oder --rcs Zeigt die Vergleichsergebnisse im RCS-Format an.
- -N oder --new-file Wenn beim Vergleich von Verzeichnissen Datei A nur in einem Verzeichnis vorkommt, lautet die Standardanzeige:
- Nur in Verzeichnis: Datei A. Wenn der Parameter -N verwendet wird, vergleicht diff die Datei A mit einer leeren Datei.
- -p Wenn es sich bei den verglichenen Dateien um C-Quellcodedateien handelt, wird der Name der Funktion angezeigt, in der sich der Unterschied befindet.
- -P oder --unidirectional-new-file Ähnlich wie -N, jedoch wird diese Datei nur dann mit einer leeren Datei verglichen, wenn das zweite Verzeichnis eine Datei enthält, die das erste Verzeichnis nicht enthält.
- -q oder --brief Zeigt nur an, ob Unterschiede bestehen, nicht detaillierte Informationen.
- -r oder --recursive Vergleicht Dateien in Unterverzeichnissen.
- -s oder --report-identical-files Wenn keine Unterschiede gefunden werden, wird trotzdem eine Meldung angezeigt.
- -S<Datei> oder --starting-file<Datei> Wenn Verzeichnisse verglichen werden, beginnt der Vergleich bei der angegebenen Datei.
- -t oder --expand-tabs Erweitert Tabulatorzeichen in der Ausgabe.
- -T oder --initial-tab Fügt am Anfang jeder Zeile ein Tabulatorzeichen für die Ausrichtung hinzu.
- -u, -U<Anzahl der Spalten> oder --unified=<Anzahl der Spalten> Zeigt die Unterschiede in Dateiinhalten in einem zusammengeführten Format an.
- -v oder --version Zeigt Versionsinformationen an.
- -w oder --ignore-all-space Ignoriert alle Leerzeichen.
- -W<Breite> oder --width<Breite> Gibt bei Verwendung des Parameters -y die Spaltenbreite an.
- -x<Dateiname oder Verzeichnis> oder --exclude<Dateiname oder Verzeichnis> Vergleicht die in der Option angegebenen Dateien oder Verzeichnisse nicht.
- -X<Datei> oder --exclude-from<Datei> Sie können Datei- oder Verzeichnistypen in einer Textdatei speichern und dann diese Textdatei in =<Datei> angeben.
- -y oder --side-by-side Zeigt die Gemeinsamkeiten und Unterschiede zwischen Dateien in einem nebeneinander angeordneten Format an.
- --help Zeigt Hilfe an.
- --left-column Wenn der Parameter -y verwendet wird und der Inhalt einer Zeile in den beiden Dateien gleich ist, wird der Zeileninhalt nur in der linken Spalte angezeigt.
- --suppress-common-lines Wenn der Parameter -y verwendet wird, werden nur die Unterschiede angezeigt.
Beispiel 1: Zwei Dateien vergleichen
[root@localhost test3]# diff log2014.log log2013.log 3c3 < 2014-03 --- > 2013-03 8c8 < 2013-07 --- > 2013-08 11,12d10 < 2013-11 < 2013-12
Die oben stehenden "3c3" und "8c8" zeigen an, dass die Dateien log2014.log und log20143log in den Zeilen 3 und 8 unterschiedlich sind; "3d2" zeigt an, dass die erste Datei die Zeilen 3 und 8 mehr enthält als die zweite Datei.
Beispiel 2: Nebeneinander-Format
[root@localhost test3]# diff log2014.log log2013.log -y -W 50
2013-01 2013-01
2013-02 2013-02
2014-03 | 2013-03
2013-04 2013-04
2013-05 2013-05
2013-06 2013-06
2013-07 2013-07
2013-07 | 2013-08
2013-09 2013-09
2013-10 2013-10
2013-11 <
2013-12 <
[root@localhost test3]# diff log2013.log log2014.log -y -W 50
2013-01 2013-01
2013-02 2013-02
2013-03 | 2014-03
2013-04 2013-04
2013-05 2013-05
2013-06 2013-06
2013-07 2013-07
2013-08 | 2013-07
2013-09 2013-09
2013-10 2013-10
> 2013-11
> 2013-12
Erklärung:
- "|" zeigt an, dass die Inhalte der beiden Dateien unterschiedlich sind.
- "<" zeigt an, dass die letztere Datei eine Zeile weniger Inhalt hat als die erstere Datei.
- ">" zeigt an, dass die letztere Datei eine Zeile mehr Inhalt hat als die erstere Datei.