
carlos_dbs
(usa Debian)
Enviado em 09/11/2016 - 09:19h
Bom dia galera!
Sou novo no mundo GNU/Linux e estou estudando Shell Script.
No meu estágio estou desenvolvendo um script que compare dois arquivos .xml, segue a situação problema:
1. O primeiro arquivo é mais velho e o segundo é uma atualização do primeiro.
2. O segundo arquivo pode ter linhas a mais ou a menos, ou linhas que mudaram seu conteúdo;
3. Preciso de um terceiro arquivo com tudo atualizado, os seja as linhas que são iguais nos dois arquivos, as novas linhas ou linhas que foram alteradas.
Com o script :
#!/bin/bash -x
DIFERENTES=$(diff -a applicationContext-pdc_817.xml applicationContext-pdc_818.xml | sed '/^</ d' | sed '/^--/ d' | sed 's/^>//' | sed '/^[0-9]/ d')
IGUAIS=$(grep -F -x -f applicationContext-pdc_818.xml applicationContext-pdc_817.xml)
#echo "$DIFERENTES" > diferentes.txt
#echo "$IGUAIS" > iguais.txt
Eu obtenho os dados que quero, porém eles ficam em arquivos diferentes, se eu utilizar o comando:
#cat iguais.txt diferentes.txt > arquivocompleto.txt.
Eu terei um 3 arquivo porém com as linhas fora de ordem, pois esse xml tem um estrutura e ela deve ser seguida.
Grato desde já!