compara e encontra diferenças de 2 arquivos de texto enormes (50 gb)

1

Eu quero encontrar as diferenças entre dois arquivos de texto (mais de 50 GB) cada.

Eu tentei diff , mas tenho 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 contou sobre rdiff que gera assinatura e delta, mas eu não testei porque não sei como começar.

De onde posso instalá-lo? De onde posso rodar? Do windows cmd ou cygwin cmd?

    
por Reema50 15.04.2016 / 19:47

2 respostas

0

Você tentou --speed-large-files mudar para diff ? Deve desperdiçar menos memória:

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

Da página de manual de diff :

--speed-large-files

assume large files and many scattered small changes

    
por 15.04.2016 / 20:21
0

De onde posso instalá-lo ( rdiff )?

Someone told me about rdiff that generates signature and delta but, I did not test it because I do not know how to begin. From where can I install it? and from where can I run it? From windows cmd or cygwin cmd?

Cygwin inclui rdiff . Está no pacote rdiff-1.0.0-1 .

De onde posso executá-lo ( rdiff )?

Someone told me about rdiff that generates signature and delta but, I did not test it because I do not know how to begin. From where can I install it? and from where can I run it? From windows cmd or cygwin cmd?

Você executa rdiff a Cygwin bash shell.

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 anterior (substituindo diff por rdiff e 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 é usar a página da Web Pesquisa de pacotes do Cygwin :

enter image description here

Role até o final da página:

enter image description here

Clique em rdiff-1.0 .0-1 :

enter image description here

Isso confirma que rdiff-1.0.0-1 é o pacote correto para instalar.

Consulte Instalando e atualizando pacotes do Cygwin para instruções de instalação.

    
por 16.04.2016 / 11:38