Quiero encontrar las diferencias entre dos archivos de texto (más de 50 GB) cada uno.
Lo intenté diff
pero tuve memory exhausted
un problema.
Estoy usando Windows7. Mi código está en PHP. Estaba llamando a diff desde mi php como:
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'");
Alguien me habló de rdiff
eso genera firma y delta pero no lo probé porque no sé cómo empezar.
¿Desde dónde puedo instalarlo? ¿Desde dónde puedo ejecutarlo? ¿Desde windows cmd o cygwin cmd?
Respuesta1
¿Intentaste --speed-large-files
cambiar a diff
? Debería desperdiciar menos memoria:
diff --speed-large-files [...]
Desde la página del manual para diff
:
--speed-archivos-grandes
asumir archivos grandes y muchos pequeños cambios dispersos
Respuesta2
wxHexEditor
wxHexEditor es gratuito y puede diferenciar archivos grandes de hasta 2^64 bytes (2 ExaByte). Tiene una GUI. Multiplataforma. Muchas funciones.
Para obtenerlo gratis, elige una de las siguientes opciones:
- Opción:FuenteForge
- Opción:GitHub
- Opción: repositorios de Debian y Ubuntu
A continuación se muestra la misma sugerencia que la anterior. Pero con detalles si estás interesado en ellos.
Captura de pantalla
Fortaleza
• Editor hexadecimal (hexadecimal). Lo cual es útil para realizar ingeniería inversa.
• Multiplataforma. Linux, Mac OS, Windows
• Interfaz gráfica de usuario (GUI) fácil de usar
• Admite archivos muy grandes de hasta 2^64 bytes (2 ExaByte)
• Compara dos archivos grandes uno al lado del otro (diff). Opcionalmente, enumere y busque todas las diferencias.
• Búsqueda muy rápida
• Utilice una pequeña cantidad de RAM
• No cree archivos temporales. Por tanto, utilizó una cantidad muy pequeña de espacio de almacenamiento.
• Tema oscuro o brillante
• Multilingüe 15 idiomas
• Fuente abierta. Si no está familiarizado con el "código abierto", significa que este software tiene mayor seguridad y mayor privacidad. Debido a que su código está disponible públicamente para revisión y contribuciones a GitHub enhttps://github.com/EUA/wxHexEditoro en SourceForge enhttps://sourceforge.net/p/wxhexeditor/code/
• Atractiva Licencia Pública General GNU versión 2. Esto significa que el código de software de esta extensión es propiedad y está respaldado por una comunidad amigable sin fines de lucro. En lugar de una corporación con fines de lucro.https://github.com/EUA/wxHexEditor/blob/master/LICENSE
Desafío
• Confusión entre los dos repositorios de código. Al momento de escribir este artículo, agosto de 2021, el repositorio de GitHub parece ser más reciente. Como se actualizó por última vez en 2021 enhttps://github.com/EUA/wxHexEditor En comparación, el repositorio de SourceForge enhttps://sourceforge.net/projects/wxhexeditor/La última actualización de wxHexEditor fue el 31 de diciembre de 2017.
Muestra tu apoyo
• Si disfrutas de esta aplicación, muestra tu apoyo a los autores y contribuyentes con:
___• Donación enhttps://www.paypal.com/cgi-bin/webscr?item_name=Donation+to+wxHexEditor&cmd=_donations&business=erdem.ua%40gmail.com
___• Soporte con ticket alhttps://sourceforge.net/projects/wxhexeditor/support
___• Soporte con foro enhttps://sourceforge.net/p/wxhexeditor/discussion/
___• Parche enhttps://sourceforge.net/p/wxhexeditor/patches/
Usando
• wxHexEditor 0.23 • Debian 10 Buster • GNOME 3.30.2
Respuesta3
¿Desde dónde puedo instalarlo ( rdiff
)?
Alguien me habló de
rdiff
eso genera firma y delta pero no lo probé porque no sé cómo empezar. ¿Desde dónde puedo instalarlo? y desde donde puedo ejecutarlo? ¿Desde windowscmd
o cygwin cmd?
Cygwinincluye rdiff
. Está en el rdiff-1.0.0-1
paquete.
¿Desde dónde puedo ejecutarlo ( rdiff
)?
Alguien me habló de
rdiff
eso genera firma y delta pero no lo probé porque no sé cómo empezar. ¿Desde dónde puedo instalarlo? y desde donde puedo ejecutarlo? ¿Desde windowscmd
o cygwin cmd?
Ejecutas rdiff
un shell Cygwin bash
.
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'");
Un comando similar al anterior (reemplazando diff
y rdiff
modificando las opciones del comando según sea necesario) debería funcionar.
¿Cómo puedo saber en qué paquete rdiff
se encuentra?
La forma más sencilla de encontrar el paquete que contiene un comando en particular es utilizarBúsqueda de paquetes CygwinPágina web:
Desplazarse hasta la parte inferior de la página:
Haga clic enrdiff-1.0.0-1:
Esto confirma que rdiff-1.0.0-1
es el paquete correcto para instalar.
VerInstalación y actualización de paquetes Cygwinpara obtener instrucciones de instalación.