Aucune des solutions données jusqu'à présent ne traite correctement les noms de fichiers contenant des espaces. Certaines échouent même si les noms de fichiers contiennent ' ou ". Si vos fichiers d'entrée sont générés par des utilisateurs, vous devez vous préparer à des noms de fichiers surprenants.
GNU Parallel traite joliment ces noms de fichiers et vous donne (au moins) 3 solutions différentes. Si votre programme prend 3 et seulement 3 arguments, cela fonctionnera :
(echo a1.txt; echo b1.txt; echo c1.txt;
echo a2.txt; echo b2.txt; echo c2.txt;) |
parallel -N 3 my-program --file={1} --file={2} --file={3}
Ou :
(echo a1.txt; echo b1.txt; echo c1.txt;
echo a2.txt; echo b2.txt; echo c2.txt;) |
parallel -X -N 3 my-program --file={}
Si, toutefois, votre programme prend autant d'arguments qu'il peut en contenir sur la ligne de commande :
(echo a1.txt; echo b1.txt; echo c1.txt;
echo d1.txt; echo e1.txt; echo f1.txt;) |
parallel -X my-program --file={}
Regardez la vidéo d'introduction pour en savoir plus : http://www.youtube.com/watch?v=OpaiGYxkSuQ