[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: