miércoles, 31 de marzo de 2010

Comparar dos archivos de texto en Linux





El comando diff

A veces podemos necesitar comparar dos archivos de texto linea por línea para determinar sus direfencias. Puede ser útil si somos programadores y queremos saber las diferencias que existen entre dos versiones de un mismo archivo (.java, .jsp, .php,...). Para ello podemos hacer uso del comando diff, que tiene la siguiente sintaxis:


diff ARCHIVO1 ARCHIVO2


El comando diff examinará ambos archivos y mostrará qué cambios habría que realizar en el ARCHIVO1 y el ARCHIVO2 para que coincidan. Nos
lo indicará de la siguiente forma:

  • Añadir (a)
  • Eliminar (b)
  • Cambiar (c)
  • Las líneas en el ARCHIVO1 con un menor que (<) y las líneas de ARCHIVO2 con un mayor que(>)


Ejemplo

Si tenemos dos archivos llamados c1.txt y c2.txt con que contienen el siguiente texto:



c1.txt


   11111111111111111111111111
   22222222222222222222222222
   33333333333333333333333333
   44444444444444444444444444  
   55555555555555555555555555



c2.txt


   11111111111111111111111111
   22222222222222222222222222
   33333333333333333333333333
   aaaaaaaaaaaaaaaaaaaaaaaaaa
   55555555555555555555555555
   66666666666666666666666666
   77777777777777777777777777

   
Para compararlos nos iremos al terminal y teclearemos:


   diff c1.txt c2.txt


La salida correspondiente será:

   4c4
   < 44444444444444444444444444
   ---   
   > aaaaaaaaaaaaaaaaaaaaaaaaaa

   5a6,7   
   > 66666666666666666666666666
   ---   
> 77777777777777777777777777



Es decir, si queremos modificar c1.txt para que coincida con c2.txt, tendremos que:

  • Sustituir la línea 4 los "44444444444444444444444444" por "aaaaaaaaaaaaaaaaaaaaaaaaaa".
  • Apartir de la línea 5, añadir la línea 6 y 7 del archivo c2.txt.




Felinfo: Java, Linux, Virtualización. Open Source.  ©Template Blogger Green by Dicas Blogger .

TOPO