Eu queria saber se existe alguma maneira de ler dois arquivos de entrada em um loop aninhado while, uma linha por vez. Por exemplo, digamos que eu tenho dois arquivos FileAe FileB.
Arquivo A:
[jaypal:~/Temp] cat filea
this is File A line1
this is File A line2
this is File A line3
PastaB:
[jaypal:~/Temp] cat fileb
this is File B line1
this is File B line2
this is File B line3
Script de amostra atual:
[jaypal:~/Temp] cat read.sh
#!/bin/bash
while read lineA
do echo $lineA
while read lineB
do echo $lineB
done < fileb
done < filea
Execução:
[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 e saída desejada:
Isso faz um loop sobre o FileB completamente para cada linha no FileA. Tentei usar continuar, interromper, sair, mas nenhum deles foi feito para alcançar a saída que estou procurando. Gostaria que o script lesse apenas uma linha do arquivo A e, em seguida, uma linha do arquivo B, saia do loop e continue com a segunda linha do arquivo A e a segunda linha do arquivo B. Algo semelhante ao script a seguir -
[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
Isso é possível com o loop while?
paste -d '\n' file1 file2