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 FileA
e 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