In Ihrer ersten diffAusgabe (so genanntes "normales Diff") lautet die Bedeutung wie folgt
< - kennzeichnet Zeilen in file1.txt
> - kennzeichnet Zeilen in file2.txt
3d2und 5a5bezeichnen betroffene Zeilennummern und welche Aktionen ausgeführt wurden. dsteht für Löschen, asteht für Hinzufügen (und csteht für Ändern). Die Zahl links vom Zeichen ist die Zeilennummer in Datei1.txt, die Zahl rechts die Zeilennummer in Datei2.txt. So 3d2erfahren Sie, dass die 3. Zeile in file1.txt gelöscht wurde und die Zeilennummer 2 in file2.txt hat (oder besser gesagt, dass der Zeilenzähler nach dem Löschen auf Zeilennummer 2 zurückging). 5a5teilt Ihnen mit, dass wir mit Zeile 5 in Datei1.txt begonnen haben (die tatsächlich leer war, nachdem wir in der vorherigen Aktion eine Zeile gelöscht haben), die Zeile hinzugefügt haben und diese hinzugefügte Zeile die Nummer 5 in Datei2.txt ist.
Die Ausgabe des diff -uBefehls ist etwas anders formatiert (sogenanntes "Unified Diff" -Format). Hier diffzeigt uns ein einzelnes Stück des Textes anstelle von zwei separaten Texten. In der Zeile bezieht sich @@ -1,5 +1,5 @@der Teil -1,5auf file1.txt und der Teil +1,5auf file2.txt. Sie teilen uns mit, dass diffein 5 Zeilen langer Text ab Zeile 1 in der Datei file1.txt angezeigt wird. Und das Gleiche gilt für die Datei2.txt - diffzeigt uns 5 Zeilen ab Zeile 1.
Wie ich bereits sagte, werden die Zeilen aus beiden Dateien zusammen angezeigt
this is the original text
line2
-line3
line4
happy hacking !
+GNU is not UNIX
Hier sind -die Zeilen angegeben, die aus file1.txt gelöscht wurden, und +die Zeilen, die hinzugefügt wurden.