Ich möchte den Unterschied zwischen zwei Dateien finden und dann nur die Unterschiede in eine dritte Datei einfügen. Ich habe verschiedene Ansätze mit awk, diff und comm gesehen. Gibt es noch mehr?
z. Vergleichen Sie zwei Dateien zeilenweise und erzeugen Sie die Differenz in einer anderen Datei
eg. Unterschiede zwischen zwei Dateien in Unix kopieren
Ich muss wissen, wie der schnellste Weg ist, alle Unterschiede zu finden und sie für jeden der folgenden Fälle in einer Datei aufzuführen
Case 1 - file2 = file1 + extra text appended.
Case 2 - file2 and file1 are different.
Du könntest es versuchen..
comm -13 <(sort file1) <(sort file2) > file3
oder
grep -Fxvf file1 file2 > file3
oder
diff file1 file2 | grep "<" | sed 's/^<//g' > file3
oder
join -v 2 <(sort file1) <(sort file2) > file3
Andere Option:
sort file1 file2 | uniq -u > file3
Wenn Sie nur die doppelten Einträge anzeigen möchten, verwenden Sie die Option "uniq -d":
sort file1 file2 | uniq -d > file3
Sie können auch versuchen, md5-Hash-Summen einzubeziehen oder ähnliches, um festzustellen, ob überhaupt Unterschiede bestehen. Vergleichen Sie dann nur Dateien mit unterschiedlichen Hashwerten ...
Das wird schnell gehen:
Fall 1 - Datei2 = Datei1 + zusätzlicher Text angehängt.
grep -Fxvf File2.txt File1.txt >> File3.txt
Datei 1: 80 Zeilen Datei 2: 100 Zeilen Datei 3: 20 Zeilen