Advertisement
darsinqauros

[Shell Script] Comparando Registros

Mar 6th, 2012
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/bash
  2.  
  3. padraoUnix="/tmp/padraoUnix.txt"
  4. usadoUnix="/tmp/usadoUnix.txt"
  5. resultado="/home/$USER/diferenca.txt"
  6.  
  7. # Converte a codificação do arquivo
  8. iconv --from-code=utf-16le --to-code=UTF-8 "$1" -o $padraoUnix
  9. iconv --from-code=utf-16le --to-code=UTF-8 "$2" -o $usadoUnix
  10.  
  11. # Remove os Carriage-Returns usado pelo windows.
  12. sed -i "s/\r//g" $padraoUnix
  13. #tr -d \\r < $1 > $padraoUnix
  14.  
  15. sed -i "s/\r//g" $usadoUnix
  16. #tr -d \\r < $2 > $usadoUnix
  17.  
  18. # Remove a linha problemática dos dois arquivos.
  19. sed -i "/Windows Registry Editor Version 5\.00/d" $padraoUnix
  20. sed -i "/Windows Registry Editor Version 5\.00/d" $usadoUnix
  21.  
  22. # Retira as linhas em branco repetidas para reduzir o tamanho final do arquivo.
  23. sed -i "/^$/d" $padraoUnix
  24. sed -i "/^$/d" $usadoUnix
  25.  
  26. # Agrupa um registro com seus atributos em uma
  27. # única linha.
  28. sed -i "s/^\[/\}\n\[/g" $padraoUnix
  29. sed -i "1d" $padraoUnix
  30. echo "}" >> $padraoUnix
  31. sed -ni '/\[/{:inicio;/}/!{N;binicio};s/\n/##;/g;s/}$//g;p}' $padraoUnix
  32.  
  33. sed -i "s/^\[/\}\n\[/g" $usadoUnix
  34. sed -i "1d" $usadoUnix
  35. echo "}" >> $usadoUnix
  36. sed -ni '/\[/{:inicio;/}/!{N;binicio};s/\n/##;/g;s/}$//g;p}' $usadoUnix
  37.  
  38. # Realiza a comparação entre os arquivos e salva o resultado em "/home/$USER/diferenca.txt"
  39. diff --changed-group-format='%>' --unchanged-group-format='' $padraoUnix $usadoUnix > $resultado
  40.  
  41. rm $padraoUnix
  42. rm $usadoUnix
  43.  
  44. exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement