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