Quería saber si hay alguna forma de leer dos archivos de entrada en un bucle anidado mientras una línea a la vez. Por ejemplo, digamos que tengo dos archivos FileA
y FileB
.
Presentar un:
[jaypal:~/Temp] cat filea
this is File A line1
this is File A line2
this is File A line3
Archivo B:
[jaypal:~/Temp] cat fileb
this is File B line1
this is File B line2
this is File B line3
Script de muestra actual:
[jaypal:~/Temp] cat read.sh
#!/bin/bash
while read lineA
do echo $lineA
while read lineB
do echo $lineB
done < fileb
done < filea
Ejecución:
[jaypal:~/Temp] ./read.sh
this is File A line1
this is File B line1
this is File B line2
this is File B line3
this is File A line2
this is File B line1
this is File B line2
this is File B line3
this is File A line3
this is File B line1
this is File B line2
this is File B line3
Problema y salida deseada:
Esto recorre completamente FileB para cada línea en FileA. Intenté continuar, romper, salir, pero ninguno de ellos está destinado a lograr el resultado que estoy buscando. Me gustaría que el script lea solo una línea del Archivo A y luego una línea del Archivo B y salga del bucle y continúe con la segunda línea del Archivo A y la segunda línea del Archivo B. Algo similar al siguiente script:
[jaypal:~/Temp] cat read1.sh
#!/bin/bash
count=1
while read lineA
do echo $lineA
lineB=`sed -n "$count"p fileb`
echo $lineB
count=`expr $count + 1`
done < filea
[jaypal:~/Temp] ./read1.sh
this is File A line1
this is File B line1
this is File A line2
this is File B line2
this is File A line3
this is File B line3
¿Es esto posible lograr con el ciclo while?
paste -d '\n' file1 file2