Je voulais savoir s'il existe un moyen de lire à partir de deux fichiers d'entrée dans une boucle imbriquée while une ligne à la fois. Par exemple, disons que j'ai deux fichiers FileA
et FileB
.
Déposer un:
[jaypal:~/Temp] cat filea
this is File A line1
this is File A line2
this is File A line3
FichierB:
[jaypal:~/Temp] cat fileb
this is File B line1
this is File B line2
this is File B line3
Exemple de script actuel:
[jaypal:~/Temp] cat read.sh
#!/bin/bash
while read lineA
do echo $lineA
while read lineB
do echo $lineB
done < fileb
done < filea
Exécution:
[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
Problème et sortie souhaitée:
Cela boucle complètement sur FileB pour chaque ligne de FileA. J'ai essayé d'utiliser continue, break, exit mais aucun d'eux n'est destiné à atteindre le résultat que je recherche. Je voudrais que le script lise une seule ligne du fichier A, puis une ligne du fichier B et quitte la boucle et continue avec la deuxième ligne du fichier A et la deuxième ligne du fichier B. Quelque chose de similaire au script suivant -
[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
Est-ce possible de le faire avec la boucle while?
paste -d '\n' file1 file2