Boucler sur des paires de valeurs dans bash

J'ai 10 fichiers texte et je veux paste chaque fichier avec la paire, de sorte que j'ai 5 total des fichiers.

J'ai essayé le suivant:

for i in 4_1 5_1 6_1 7_1 8_1
do
for j in 4_2 5_2 6_2 7_2 8_2
do
paste ${i}.txt ${j}.txt > ${i}.${j}.txt
done
done

Toutefois, ce code combine toutes les combinaisons possibles au lieu de simplement en combinant les paires correspondantes.

Donc je voudrais fichier 4_1.txt être jumelé avec 4_2.txt, 5_1.txt avec 5_2.txt, etc.

  • Vous avez besoin de faire une boucle sur les préfixes et les suffixes pas de noms de fichiers complets.
  • Le comportement que vous obtenez est la même chose que ce imbriquée for boucle ferait dans n'importe quelle langue; il n'y a rien bash-précis à ce sujet.
  • Chaque fois que je veux faire quelque chose de relativement simple comme une itération sur des paires de valeurs, Bash fait de la charge de travail ressembler à un insurmontable épique. Donc je ne pas utiliser bash quand avoir besoin de rien de plus complexe qu'une liste de shell appels.
  • Cela devrait probablement être fusionné avec stackoverflow.com/questions/18909957/... mais j'hésite à les marquer comme étant des doublons en ce moment.
InformationsquelleAutor Rish | 2015-02-25