Comparando linea por linea dos archivos en bash
February 11th, 2010Frecuentemente me veo en la necesidad de comparar archivos no sorteados linea por linea sobre todo para parceo de configuraciones y cada que lo requiero tengo que buscar de nuevo la info en internet, asi que para futuras referencias pongo aqui el metodo mas sencillo que me he encontrado, basicamente se guarda un archivo en en descriptor 7, se abre linea por linea y se va comparando toda la linea abierta contra todas las lineas de otro archivo abierto en el momento, quienes hayan intentado hacerlo me entenderan ya que en bash si abres dos archivos a la vez cierra el primero para permitirte trabajar con el segundo.
aduarte@aduarte:/$ cat a.txt
b
c
d
aduarte@aduarte:/$ cat b.txt
1
2
3
aduarte@aduarte:/$ cat opentowfiles.sh
#!/bin/bash
exec 7
cat <&7 | while read LA
do
cat b.txt | while read LB
do
echo $LA $LB
done
done
aduarte@aduarte:/$ ./opentowfiles.sh
b 1
b 2
b 3
c 1
c 2
c 3
d 1
d 2
d 3
February 11th, 2010 at 10:52 pm
while read LA; do
while read LB; do
echo $LA $LB
done < <(cat a.txt)
done < <(cat b.txt)