Lire deux files text, concaténer chaque ligne

J'ai deux files text de la même longueur, dans l'ordre: l'un des produits, l'autre des produits de comparaison. Je voudrais que la sortie soit "produit, comparaison" pour chaque ligne. Oui je pourrais les jeter dans une feuille de calcul et exporter en tant que csv, mais j'aimerais comprendre comment le faire dans bash. Les deux files sont fournis en arguments.

#!/bin/bash file1="$1"; file2="$2"; separator=";"; while read -r product do read -r comp < "$file2"; echo $product $separator $comp >> temp.txt; done < "$file1" tr -d " " < temp.txt | sort > out.txt rm temp.txt 

Cela me donne tous les produits avec le même produit de comparaison! Par exemple

 $: cat out.txt product1;comp1 product2;comp1 product3;comp1 

Je ne lis évidemment pas la seule ligne du file comp – qu'est-ce que je fais mal? Comment lire une seule ligne?

Si vous voulez vraiment le faire dans bash, je vous suggère d'utiliser l'option -u fd pour lire les deux files simultanément en utilisant des stream numérotés, par exemple

 while read -r -u3 product; read -r -u4 comp; do printf '%s;%s\n' "$product" "$comp" done 3<products.txt 4<comps.txt 

Cependant, vous pouvez simplement utiliser l'utilitaire de collage

 paste -d\; products.txt comps.txt