Executer une commande sur chaque fichiers

Bonjour,
j’ai besoin d’un petit script pour executer ces commandes sur tout les fichiers flv d’un répertoire :

[quote]mplayer -ao pcm -vo audiodump.wav $1
lame audiodump.wav -q $2 -b $3 $1".mp3"
rm audiodump.wav[/quote]
D’un le but d’en faire des mp3 .
Seulement le script que j’ai fais ne prend pas en compte les espaces dans les noms de fichiers :

[quote]for img in ls $1
do
nomimg=echo $img | awk 'BEGIN{FS="."} {print $NR}'
if [[ ${img##*.} == “flv” ]]
then
echo $nomimg
fi
done[/quote]
Quelqu’un auarit une solution ?
Merci .

J’ai une solution un peu tordu :

for img in `ls $1 | tr ' ' '_'` do img=$(echo $img | tr '_' ' ') nomimg=`echo $img | awk 'BEGIN{FS="."} {print $NR}'` if [[ ${img##*.} == "flv" ]] then echo $nomimg fi done

grosso modo après le ls tu remplace les espaces par un caractère qui n’apparaît pas dans tes noms de fichiers, puis tu les re-place quand tu rentre dans la boucle. C’est dans ces moments là qu’on se dit qu’un shell objet ça peut avoir ces bons cotés (en plus des mauvais).

Bonjour,

J’ai peut être mal compris le truc mais pour avoir accès a tous les fichiers flv du dossier courant, tu peut faire ceci :

for I in *.flv
do
      ....
done

Ou les trois petits points sont tes instructions pour transformer les .flv en .mp3
Dans ce code, la variable I contiendra les noms des fichiers avec extension .flv
Tu peut facilement l’enlever en utilisant tr.