Re: Quizz en shell du vendredi ;-)

Page principale

Répondre à ce message
Auteur: Olivier Allard-Jacquin
Date:  
À: guilde
Sujet: Re: Quizz en shell du vendredi ;-)
    Bonjour,

sylvain letuffe a écrit :
>> Ne faudrait il pas protéger la variable FILM:
>>
>> mencoder -o "$FILM.avi" -ovc lavc -oac pcm "$FILM"
>>
>> Je n'ai pas testé, mais c'est l'idée qui me vient en voyant ce code.
>
> Oui, j'ai fais, ( j'ai volontairement simplifié le code pour qu'il soit plus
> simple à lire )
> Mais celui que j'utilise protège les variables, remplace l'extension plutôt
> que de l'ajouter, remplace le fichier d'origine.
>
> Le problème reste que si mon find sort un truc genre :
> ./ici ou là/vidéo.avi: Apple QuickTime vidéo machin
> ( je coupe avec sed )
> j'obtiens :
> ./ici ou là/vidéo.avi
>
> un for là dessus, va me boucler sur :
> ./ici
> ou
> là/vidéo.avi
>
> En gros ça marche pas.
> Alors je bidouille salement, et je remplace tous les espaces par des truc
> genre : ####### avant le for, que je re-replace ensuite par des espaces, mais
> c'est bien sale.
>
> Je vais tenter la solution des xargs de edgar et frédéric


    Il me semble que dans ce cas, c'est la méthode du IFS qui est la meilleur :


IFS=$'\n'
for I in `find . -type f`; do echo "+ [$I] "; done

- La commande "find . -type f" limite la réponse aux fichiers (les
répertoires sont exclus)
- la commande "echo" recevra le nom du fichier, même si il possède des
espaces.

    Cordialement,


                            Olivier


-- 
~~~~~~~  _____/\_____  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Phoenix /   _ \/ _   \    Olivier Allard-Jacquin
       /   / \  / \   \   Web:  http://olivieraj.free.fr/
      /___/  /  \  \___\  Mail: olivieraj@???
~~~~ /////  ///\\\  \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!