Comment est-ce que j’écris plusieurs fichiers de texte de incorporé pour la boucle dans bash?

J’ai cette boucle bash ci-dessous qui utilise un script perl. Il est prévu de générer quelque chose pour chaque $i dans chaque $f que je veux enregistrer en tant que fichier texte séparé. Le code que j’ai ci-dessous fait le travail, mais au lieu d’enregistrer pour $i individuel, il enregistre pour $f et place la sortie de 18 to 24 dans un seul fichier. Peut-être que je dois repositionner la commande d’écriture dans cette boucle ou existe-t-il un meilleur moyen de le faire?

 for f in *.fastq; do echo "Processing: " $f for i in $(seq 18 24); do echo "Doing: " $i perl /home/owner/perl/count.pl $f $i done > >(tee /media/owner/${f}_${i}.txt) 2>&1 done 

Les redirections sur les boucles sont par boucle et non par itération.

Vous pouvez utiliser à la place un { command group; } { command group; } autour des commandes que vous voulez et redirigez-les:

 for f in *.fastq; do echo "Processing: " $f for i in $(seq 18 24); do { echo "Doing: " $i perl /home/owner/perl/count.pl $f $i } > >(tee /media/owner/${f}_${i}.txt) 2>&1 done done