Ich möchte die Unterschiede zwischen zwei Textdateien (jeweils größer als 50 GB) finden.
Ich habe es versucht diff
, aber ich habe memory exhausted
ein Problem.
Ich verwende Windows 7. Mein Code ist in PHP. Ich habe diff von meinem PHP aus folgendermaßen aufgerufen:
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 davon erzählt, rdiff
dass Signatur und Delta generiert werden, aber ich habe es nicht getestet, weil ich nicht weiß, wie ich anfangen soll.
Wo kann ich es installieren? Wo kann ich es ausführen? Über die Windows-Eingabeaufforderung oder die Cygwin-Eingabeaufforderung?
Antwort1
Haben Sie versucht, --speed-large-files
auf umzustellen diff
? Dadurch sollte weniger Speicher verbraucht werden:
diff --speed-large-files [...]
Aus der Handbuchseite für diff
:
--speed-große-dateien
gehen Sie von großen Dateien und vielen verstreuten kleinen Änderungen aus
Antwort2
wxHexEditor
wxHexEditor ist kostenlos und kann große Dateien bis zu 2^64 Bytes (2 ExaByte) differenzieren. Hat eine GUI. Plattformübergreifend. Viele Funktionen.
Um es kostenlos zu erhalten, wählen Sie eine der folgenden Optionen:
- Möglichkeit:QuelleForge
- Möglichkeit:GitHub
- Option: Sowohl Debian- als auch Ubuntu-Repositorys
Unten finden Sie den gleichen Vorschlag wie oben. Aber mit Einzelheiten, falls Sie daran interessiert sind.
Bildschirmfoto
Stärke
• Hexadezimaler (Hex) Editor. Hilfreich für Reverse Engineering.
• Plattformübergreifend. Linux, Mac OS, Windows
• Einfach zu bedienende grafische Benutzeroberfläche (GUI)
• Unterstützt sehr große Dateien bis zu 2^64 Byte (2 ExaByte)
• Zwei große Dateien nebeneinander vergleichen (Diff). Optional alle Diff auflisten und durchsuchen.
• Sehr schnelle Suche
• Verwenden Sie nur eine kleine Menge RAM
• Es werden keine temporären Dateien erstellt. Dadurch wird nur sehr wenig Speicherplatz verbraucht.
• Dunkles oder helles Design
• Mehrsprachig (15 Sprachen)
• Open Source. Wenn Sie mit „Open Source“ nicht vertraut sind, bedeutet dies, dass diese Software sowohl eine stärkere Sicherheit als auch einen stärkeren Datenschutz bietet. Da der Code öffentlich zur Überprüfung und für Beiträge auf GitHub verfügbar ist unterhttps://github.com/EUA/wxHexEditoroder bei SourceForge unterhttps://sourceforge.net/p/wxhexeditor/code/
• Attraktive GNU General Public License Version 2. Das bedeutet, dass der Softwarecode dieser Erweiterung Eigentum einer freundlichen, gemeinnützigen Community ist und von dieser unterstützt wird. Statt eines gewinnorientierten Unternehmens.https://github.com/EUA/wxHexEditor/blob/master/LICENSE
Herausforderung
• Verwirrung zwischen den beiden Code-Repositorys. Zum Zeitpunkt des Schreibens dieses Artikels, August 2021, scheint das GitHub-Repository aktueller zu sein. Da es zuletzt im Jahr 2021 aktualisiert wurde beihttps://github.com/EUA/wxHexEditor Im Vergleich dazu das SourceForge-Repository unterhttps://sourceforge.net/projects/wxhexeditor/Die letzte Aktualisierung von wxHexEditor war am 31. Dezember 2017.
Zeigen Sie Ihre Unterstützung
• Wenn Ihnen diese Anwendung gefällt, zeigen Sie den Autoren und Mitwirkenden Ihre Unterstützung mit:
___• Spende anhttps://www.paypal.com/cgi-bin/webscr?item_name=Donation+to+wxHexEditor&cmd=_donations&business=erdem.ua%40gmail.com
___• Support mit Ticket beihttps://sourceforge.net/projects/wxhexeditor/support
___• Unterstützung mit Forum beihttps://sourceforge.net/p/wxhexeditor/discussion/
___• Patch beihttps://sourceforge.net/p/wxhexeditor/patches/
Verwenden von
• wxHexEditor 0.23 • Debian 10 Buster • GNOME 3.30.2
Antwort3
Wo kann ich es installieren ( rdiff
)?
Jemand hat mir davon erzählt,
rdiff
dass Signaturen und Deltas generiert werden, aber ich habe es nicht getestet, weil ich nicht weiß, wie ich anfangen soll. Wo kann ich es installieren? Und wo kann ich es ausführen? Unter Windowscmd
oder Cygwin cmd?
Cygwinbeinhaltet rdiff
. Es ist im rdiff-1.0.0-1
Paket enthalten.
Von wo aus kann ich es ausführen ( rdiff
)?
Jemand hat mir davon erzählt,
rdiff
dass Signaturen und Deltas generiert werden, aber ich habe es nicht getestet, weil ich nicht weiß, wie ich anfangen soll. Wo kann ich es installieren? Und wo kann ich es ausführen? Unter Windowscmd
oder Cygwin cmd?
Sie führen rdiff
eine Cygwin- bash
Shell 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 ähnlicher Befehl wie der obige (ersetzen Sie diff
ihn durch rdiff
und ändern Sie die Befehlsoptionen nach Bedarf) sollte funktionieren.
Wie erfahre ich, rdiff
in welchem Paket sich das befindet?
Der einfachste Weg, das Paket zu finden, das einen bestimmten Befehl enthält, ist die VerwendungCygwin-PaketsucheWebsite:
Scrollen Sie zum Ende der Seite:
Klicke aufrdiff-1.0.0-1:
Dies bestätigt, dass es rdiff-1.0.0-1
sich um das richtige zu installierende Paket handelt.
SehenInstallieren und Aktualisieren von Cygwin-Paketenfür Installationsanweisungen.