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.