Comparando dois arquivos com um programa GUI de fácil leitura?

0

Eu gostaria de comparar dois arquivos grandes que não são próximos de 1 GB de tamanho.

Kompare falha quando o carregamento de arquivos é grande. Eu configurei Kompare como na foto abaixo:

GostariadeapresentarasdiferençasdeumaformaqueKomparefaz(ouseja,limparemostrarcomcoreselinhas),gerenciávelparapessoasquenãoestãofamiliarizadascomTerminal.

Eutambémtenteiusarocomando:

diff--speed-large-filesa.fileb.file

Comosugerido aqui:

Existe uma maneira de despejar a saída do diff em um arquivo, para que possa ser lido posteriormente por outro programa.

    
por Mc Jorch 13.09.2018 / 22:54

1 resposta

1

Is there a way to dump the output of diff into a file, so it can be read later by another program?

Sim!

diff --speed-large-files a.file b.file > diffoutput

Isso cria um arquivo chamado diffoutput e grava a saída de diff nele.

I would like to present the differences in a way that Kompare does (i.e. clear and showing with colors and lines), manageable for people who are not familiar with Terminal.

Eu não acho que a Kompare funcione para este propósito. (Ou, pelo menos não diretamente.) Eu tentei diferenciar dois arquivos de 3MB, e isso exigiu 150 MB de memória. Eu suponho que, se eu tentasse diferenciar dois arquivos de 1 GB, seriam necessários cerca de 50 GB.

Aqui algumas ideias:

  • Divida os arquivos. split -l 5000 filename pode dividir um arquivo chamado filename em blocos de 5.000 linhas.
  • Remover linhas sem importância. Hipoteticamente, se você se importasse apenas com as linhas que tinham o FOOBAR, você poderia executar grep FOOBAR input > output e obter apenas as linhas que continham FOOBAR.
  • Use um pouco de shell. Este comando:

    colordiff --suppress-common-lines -y file1.ext file2.ext | aha > test.html
    

    irá diferenciar duas linhas; aplicar coloração para as diferentes linhas; remova linhas comuns; exibi-los lado a lado; e crie um arquivo HTML que possa ser aberto em um navegador da Web.

por 14.09.2018 / 03:13