Vergleiche und finde Unterschiede zwischen zwei großen Textdateien (50 GB)

1955
Reema50

Ich möchte die Unterschiede zwischen zwei Textdateien (mehr als 50 GB) ermitteln.

Ich habe es versucht, diffaber ich habe ein memory exhaustedProblem.

Ich verwende Windows7. Mein Code ist in PHP. Ich habe diff aus meinem PHP als bezeichnet:

shell_exec("C:\\cygwin64\\bin\\bash.exe --login -c 'diff $text_files_path/$OldDatabaseFile.txt $text_files_path/$NewDatabaseFile.txt > $text_files_path/TempDiff_$OldDatabaseFile$NewDatabaseFile.txt 2>&1'"); 

Jemand hat mir erzählt, rdiffdass Signatur und Delta generiert werden, aber ich habe es nicht getestet, weil ich nicht weiß, wie ich anfangen soll.

Von wo kann ich es installieren? Von wo kann ich es laufen lassen? Von Windows-Cmd oder Cygwin-Cmd?

1
Mögliches Duplikat von [Mit welchem ​​Programm können große Dateien unter Windows verglichen werden?] (Http://superuser.com/questions/34962/what-program-to-use-to-compare-big-files-under-windows) Ƭᴇcʜιᴇ007 vor 8 Jahren 1
@ Ƭᴇcʜιᴇ007 Ich möchte kein GUI-Programm! Ich möchte einen Befehl schreiben, der ein solches Dienstprogramm in meinen PHP-Code aufruft. Reema50 vor 8 Jahren 0
Es gibt viele Antworten und viele sind keine GUI-Programme. Ƭᴇcʜιᴇ007 vor 8 Jahren 0
Sorry aber ich versuche die "nicht GUI-Programme": fc und comp und nicht was ich suche. Vielen Dank. Reema50 vor 8 Jahren 0

2 Antworten auf die Frage

0
Jakuje

Hast du versucht zu --speed-large-fileswechseln diff? Es sollte weniger Speicherplatz verschwenden:

diff --speed-large-files [...] 

Von der Handbuchseite für diff:

--speed-large-files

Angenommen, große Dateien und viele kleine Änderungen

Ja. Ich versuche es. Das gleiche prob! Reema50 vor 8 Jahren 0
0
DavidPostill

Von wo kann ich es installieren ( rdiff)?

Jemand hat mir erzählt, rdiffdass Signatur und Delta generiert werden, aber ich habe es nicht getestet, weil ich nicht weiß, wie ich anfangen soll. Von wo kann ich es installieren? und von wo kann ich es laufen lassen? Von Windows cmdoder Cygwin cmd?

Cygwin beinhaltet rdiff. Es ist im rdiff-1.0.0-1Paket enthalten.


Von wo kann ich es ausführen ( rdiff)?

Jemand hat mir erzählt, rdiffdass Signatur und Delta generiert werden, aber ich habe es nicht getestet, weil ich nicht weiß, wie ich anfangen soll. Von wo kann ich es installieren? und von wo kann ich es laufen lassen? Von Windows cmdoder Cygwin cmd?

Sie führen rdiffeine Cygwin- bashShell aus.

shell_exec("C:\\cygwin64\\bin\\bash.exe --login -c 'diff $text_files_path/$OldDatabaseFile.txt $text_files_path/$NewDatabaseFile.txt > $text_files_path/TempDiff_$OldDatabaseFile$NewDatabaseFile.txt 2>&1'"); 

Ein Befehl ähnlich dem obigen (Ersetzen diffdurch rdiffund Ändern der Befehlsoptionen bei Bedarf) sollte funktionieren.


Wie kann ich herausfinden, in welchem ​​Paket sich rdiffbefindet?

Die einfachste Möglichkeit, das Paket mit einem bestimmten Befehl zu finden, ist die Verwendung der Cygwin Package Search- Webseite:

Scrollen Sie zum Ende der Seite:

Klicken Sie auf rdiff-1.0.0-1 :

Dies bestätigt, dass rdiff-1.0.0-1das richtige Paket installiert werden muss.

Installationsanweisungen finden Sie unter Installieren und Aktualisieren von Cygwin-Paketen .