Bonjour, Le 5 mai 2011 à 17:33, Jeremy Monnet a écrit :
Comme souvent, après avoir posé, on trouve une réponse : exec 3<toto exec 4<toto.bak while IFS= read -r un <&3; read -r deux <&4; do echo "1 : $un, 2: $deux"; done 1 : patate, 2: patate 1 : tata, 2: tata 1 : titi, 2: titi 1 : tutu, 2: tutu
Pas mal du tout. Très bien vu même ! Si un fichier est plus long que l'autre et qu'on veut aller au bout du second, il faut modifier un peu. voilà mon idée : exec 3<toto1 4<toto2 ; stop1= stop2= while read -r un <&3 || { un=PLUSRIEN ; stop1=1; } read -r deux <&4 || { deux=PLUSRIEN ; stop2=1; } test ! '(' "$stop1" -a "$stop2" ')' do echo "1 : $un, 2: $deux" done exec 3>&- 4>&- 1 : 1, 2: un 1 : 2, 2: deux 1 : 3, 2: trois 1 : 4, 2: quatre 1 : 5, 2: PLUSRIEN 1 : 6, 2: PLUSRIEN 1 : 7, 2: PLUSRIEN bonsoir