Re: [Off} Aumentar a precisão de diff
Em Quinta 12 Julho 2007 10:10, Renato S. Yamane escreveu:
> Ronaldo Reis Junior escreveu:
> > Por exemplo,
> >
> > arquivo1:
> > teste
> > testeA
> > testC
> >
> > arquivo2:
> > test
> > testA
> > testD
> >
> > quero poder comparar e fazer o seguinte arquivo:
> > test
> > testA
> > testC
>
> Esses 2 arquivos são completamente diferentes. Eu não entendi porque
> você deseja que a primeira linha do arquivo de saída deveria ser igual
> ao arquivo1, a segunda linha igual ao arquivo2 e a terceira linha também
> igual ao arquivo2.
>
> Qual é a lógica utilizada?
>
> > Mas o kompare mostra uma única diferença no bloco de três linhas
>
> O arquivo1 é totalmente diferente do arquivo2:
>
> $ diff -up arquivo1 arquivo2
> --- arquivo1 2007-07-12 09:30:46.000000000 -0300
> +++ arquivo2 2007-07-12 09:31:20.000000000 -0300
> @@ -1,3 +1,3 @@
> -teste
> -testeA
> -testC
> +test
> +testA
> +testD
>
> > sendo assim,
> > só consigo gerar um arquivo como o arquivo 1 ou o 2 e não uma mescla dos
> > dois.
>
> O arquivo de saída que você postou *não* é a mescla dos dois primeiros
> arquivos (arquivo1 e arquivo2).
>
> A mesclagem deveria ser:
> teste
> test
> testeA
> testA
> testC
> testD
>
> > Seu que na linha de comando até tem algumas opções, inclusive de letra a
> > letra com o wdiff, mas eu gostari deste poder de comparação em uma
> > interface legal como a do kompare ou outra qualquer.
> > Alguem tem alguma dica?
>
> Eu não entendi o que você está querendo fazer.
>
> Att,
> Renato
Renato,
vou tentar explicar melhor. Os dois são completamente diferentes, mas eu quero
um terceiro arquivo com algumas linhas do primeiro e outra linhas do segundo,
sacou?
Exemplo prático.
Eu modifico algumas entradas num arquivo de configuração, exemplo:
/etc/R/ldpaths
ao atualizar o R ele pede para re-instalar o arquivo pois há modificações. eu
re-instalo e ele cria um /etc/R/ldpaths.dpkg-old, mas eu quero colocar
novamente minhas configs sem com isto apagar as modificações realizadas pelo
mantenedor do pacote. Obviamente eu poderia simplismente fazer isto
manualmente, mas gostaria de saber como fazer isto usando alguma ferramenta
de diff. Eu tentei com o kompare que me permite selecionar quais modificações
eu quero que seja aplicada e ignorar outras. O problema é que ele trabalha
com blocos de diferenças, assim eu fico com uma situação como a descrita
acima.
/etc/R/ldpaths
: ${JAVA_HOME=}
: ${R_JAVA_LD_LIBRARY_PATH=}
: ${R_LD_LIBRARY_PATH=${R_HOME}/lib:/usr/X11R6/lib}
/etc/R/ldpaths.dpkg-old
: ${JAVA_HOME=/usr/lib/jvm/java-6-sun}
: ${R_JAVA_LD_LIBRARY_PATH=${JAVA_HOME}/jre/lib/i386/client:
${JAVA_HOME}/jre/lib/i386:${JAVA_HOME}/jre/../lib/i386}
: ${R_LD_LIBRARY_PATH=${R_HOME}/lib}
mas o que eu quero é fazer assim:
: ${JAVA_HOME=/usr/lib/jvm/java-6-sun}
: ${R_JAVA_LD_LIBRARY_PATH=${JAVA_HOME}/jre/lib/i386/client:
${JAVA_HOME}/jre/lib/i386:${JAVA_HOME}/jre/../lib/i386}
: ${R_LD_LIBRARY_PATH=${R_HOME}/lib:/usr/X11R6/lib}
Viu, algumas coisas são modificadas (linhas 1 e 2 sem quebra de linha do
e-mail) e outras devem ser ignoradas (linha 3), mas o kompare só reconhece o
bloco, então só consigo fazer o arquivo ldpaths ficar igual ao
ldpaths.dpkg-old ou vice versa.
Entenderam?
Inte
Ronaldo
--
> Prof. Ronaldo Reis Júnior
| .''`. UNIMONTES/Depto. Biologia Geral/Lab. de Ecologia
| : :' : Campus Universitário Prof. Darcy Ribeiro, Vila Mauricéia
| `. `'` CP: 126, CEP: 39401-089, Montes Claros - MG - Brasil
| `- Fone: (38) 3229-8187 | ronaldo.reis@unimontes.br | chrysopa@gmail.com
| http://www.ppgcb.unimontes.br/ | ICQ#: 5692561 | LinuxUser#: 205366
Reply to: