
Quero encontrar as diferenças entre dois arquivos de texto (mais de 50 GB) cada.
Eu tentei diff
, mas tive memory exhausted
problema.
Estou usando o Windows7. Meu código está em PHP. Eu estava chamando diff do meu 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'");
Alguém me falou rdiff
que gera assinatura e delta mas não testei porque não sei como começar.
De onde posso instalá-lo? De onde posso executá-lo? Do Windows cmd ou cygwin cmd?
Responder1
Você tentou --speed-large-files
mudar para diff
? Deve desperdiçar menos memória:
diff --speed-large-files [...]
Da página de manual para diff
:
--speed-arquivos grandes
assuma arquivos grandes e muitas pequenas alterações dispersas
Responder2
Editor wxHex
wxHexEditor é gratuito e capaz de diferenciar arquivos grandes de até 2 ^ 64 bytes (2 ExaByte). Possui uma interface gráfica. Plataforma cruzada. Muitos recursos.
Para obtê-lo gratuitamente, escolha uma das seguintes opções:
- Opção:FonteForge
- Opção:GitHub
- Opção: repositórios Debian e Ubuntu
Abaixo está a mesma sugestão acima. Mas com detalhes se você estiver interessado neles.
Captura de tela
Força
• Editor Hexadecimal (Hex). O que é útil para fazer engenharia reversa.
• Plataforma cruzada. Linux, MacOS, Windows
• Interface gráfica do usuário (GUI) fácil de usar
• Suporta arquivos muito grandes de até 2^64 bytes (2 ExaByte)
• Compare dois arquivos grandes lado a lado (diff). Opcionalmente, liste e pesquise todas as diferenças.
• Pesquisa muito rápida
• Use pequena quantidade de RAM
• Não crie arquivos temporários. Portanto, ele usou uma quantidade muito pequena de espaço de armazenamento.
• Tema escuro ou claro
• Multilíngue em 15 idiomas
• Código aberto. Se você não está familiarizado com “código aberto”, isso significa que este software tem segurança e privacidade mais fortes. Como seu código está disponível publicamente para revisão e contribuições ao GitHub emhttps://github.com/EUA/wxHexEditorou no SourceForge emhttps://sourceforge.net/p/wxhexeditor/code/
• Atraente Licença Pública Geral GNU versão 2. Isso significa que o código de software desta extensão pertence e é suportado por uma comunidade amigável sem fins lucrativos. Em vez de uma corporação com fins lucrativos.https://github.com/EUA/wxHexEditor/blob/master/LICENSE
Desafio
• Confusão entre os dois repositórios de código. No momento em que este artigo foi escrito, agosto de 2021, o repositório GitHub parecia ser mais recente. Como foi atualizado pela última vez em 2021 emhttps://github.com/EUA/wxHexEditor Em comparação, o repositório SourceForge emhttps://sourceforge.net/projects/wxhexeditor/A última atualização do wxHexEditor foi em 31 de dezembro de 2017.
Mostre seu apoio
• Se você gosta deste aplicativo, mostre seu apoio aos autores e colaboradores com:
___• Doação emhttps://www.paypal.com/cgi-bin/webscr?item_name=Donation+to+wxHexEditor&cmd=_donations&business=erdem.ua%40gmail.com
___• Suporte com ticket emhttps://sourceforge.net/projects/wxhexeditor/support
___• Suporte com fórum emhttps://sourceforge.net/p/wxhexeditor/discussion/
___• Patch emhttps://sourceforge.net/p/wxhexeditor/patches/
Usando
• wxHexEditor 0.23 • Debian 10 Buster • GNOME 3.30.2
Responder3
De onde posso instalá-lo ( rdiff
)?
Alguém me falou
rdiff
que gera assinatura e delta mas não testei porque não sei como começar. De onde posso instalá-lo? e de onde posso executá-lo? Do Windowscmd
ou do Cygwin cmd?
Cygwininclui rdiff
. Está no rdiff-1.0.0-1
pacote.
De onde posso executá-lo ( rdiff
)?
Alguém me falou
rdiff
que gera assinatura e delta mas não testei porque não sei como começar. De onde posso instalá-lo? e de onde posso executá-lo? Do Windowscmd
ou do Cygwin cmd?
Você executa rdiff
um bash
shell Cygwin.
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'");
Um comando semelhante ao acima (substituindo diff
e rdiff
modificando as opções de comando conforme necessário) deve funcionar.
Como posso descobrir em qual pacote rdiff
está?
A maneira mais fácil de encontrar o pacote que contém um comando específico é usarPesquisa de pacotes Cygwinpágina da Internet:
Role até o final da página:
Clique emrdiff-1.0.0-1:
Isso confirma que rdiff-1.0.0-1
é o pacote correto para instalar.
VerInstalando e atualizando pacotes Cygwinpara obter instruções de instalação.