Re: Quizz en shell du vendredi ;-)

Page principale

Répondre à ce message
Auteur: Nicolas Tripon
Date:  
À: sylvain letuffe
CC: GUILDE
Sujet: Re: Quizz en shell du vendredi ;-)
>for x in `find . -exec file {} \; | grep QuickTime` ; do
>FILM=`echo "$x" | sed s/": Apple QuickTime.*"//`
>mencoder -o $FILM.avi -ovc lavc -oac pcm $FILM
>done
>
>Et là, et ça m'arrive souvent, le for boucle sur tout les "mots" séparés soit
>par des \n soit des espaces.
>Il doit y avoir mieux...


  find . -exec sh -c 'file "$0" | grep QuickTime >/dev/null' {} \; \
         -exec sh -c 'mencoder -o "$0".avi -ovc lavc -oac pcm "$0"' {} \;


Ceci devrait accepter tous les caractères admis pour les noms de fichiers
(c.a.d tous les caractères à l'exception de '\0' et '/').
Autre méthode (mais je n'ai essayé aucune) :

find . -exec sh -c 'file "$0" | grep QuickTime >/dev/null' {} \; -print0 |
xargs -0 -I '{}' mencoder -o '{}'.avi -ovc lavc -oac pcm '{}'

-Nicolas