399 votes

Exécuter la commande sur tous les fichiers d'un répertoire

Quelqu'un pourrait-il fournir le code permettant de faire ce qui suit ? Supposons qu'il existe un répertoire de fichiers, qui doivent tous être exécutés par un programme. Le programme sort les résultats en sortie standard. J'ai besoin d'un script qui ira dans un répertoire, exécutera la commande sur chaque fichier, et conciliera la sortie dans un grand fichier de sortie.

Par exemple, pour exécuter la commande sur 1 fichier :

$ cmd [option] [filename] > results.out

3 votes

Je voudrais ajouter à la question. Peut-on le faire en utilisant xargs ? par exemple, ls <directory> | xargs cmd [options] {filenames put in here automatically by xargs} [more arguments] > results.out

3 votes

C'est possible, mais vous avez probablement ne veulent pas utiliser ls pour conduire xargs . Si cmd est écrit de manière compétente, peut-être pouvez-vous simplement faire cmd <wildcard> .

-3voto

mattjones Points 88
for file in `ls`; do cmd [option] $file; done >& results.out

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X