[BASH] exécuter script sur les fichiers d'un répertoire

Bonsoir,
je veux exécuter un script de façon récursive sur les fichiers d’un répertoire, mais je suis nul en bash. Le script a exécuter s’appelle encodeur-web, et prends en paramètre le nom d’un fichier (qui peut contenir des espaces.

#!/bin/bash for video in "/home/mon rep"/* do ./encodeur-web "$video" done
Mais ça ne fonctionne pas.

[quote]Invalid data found when processing input
[/quote]
comment passer correctement le nom du fichier à mon script ?

Bonjour,

As tu essayé avec la commande find .

Exemple : appliquer le script taille.sh aux fichiers dont le nom contient toto :

find /mon/dossier -name '*toto*' -exec $HOME/taille.sh {} \;

[quote]…Invalid data found when processing input…[/quote]Ce message provient sans doute de [mono]./encodeur-web[/mono] qui a trouvé un fichier qui ne lui plaît pas.

Donc, l’erreur est plutôt à chercher dans un ou plusieurs des fichiers à traiter,
ou/et dans le programme (ou script) d’encodage nommé [mono]./encodeur-web[/mono]

=======
On pourrais faire “dire” au script de quel(s) fichier(s) il s’agit :

[code]#!/bin/bash

ligne suivante à dé-commenter si besoin

rm fichiersNonEncodes.txt

for video in “/home/mon rep”/*
do
./encodeur-web “$video” ||
echo “$video” >> fichiersNonEncodes.txt
done[/code]Le fichier [mono]fichiersNonEncodes.txt[/mono] sera créé.

Éventuellement, pour éviter de rajouter à chaque fois une nouvelle liste dans le fichier,
on pourrait supprimer le fichier fichiersNonEncodes.txt au début du script.

========
Ensuite, s’il est question d’appliquer un traitement spécial aux fichiers de la liste :

[code]#!/bin/bash

IFS=$’\n’
for video in $(cat fichiersNonEncodes.txt)
do
scriptTraitementSpecial "$video"
done[/code]

encodeur-web fonctionne très bien. C’est le fichier qui lui est passé en parametre qui n’était pas correct.
J’ai repris le script, et maintenant ça fonctionne. Il devait y avoir une faute de frappe quelque part.