Re: [LA-discussions] questions bash

[ Thread Index | Date Index | More linuxarverne.org/discussions Archives ]


On Wed, Jan 12, 2011 at 10:41:08PM +0100, Brice Lopez wrote:
> Salut,
>
> petite question aux spécialistes du shell. J'ai un dossier contenant 13 
> épisodes nommés "gantz s01e01.mkv", "gantz s01e02.mkv", etc.
>
> Les mkv étant mal foutus, je voudrais les nettoyer et les re-multiplexer 
> avec mkcleaner. Malheureusement, le script ne permet pas de faire un 
> "mkclean --remux ./*".
>
> J'ai donc essayé un "for gantz in $(ls); do mkclean --remux $gantz;  
> done". Mais comme les noms de fichiers contiennent des espaces, il  
> cherche sans succès le fichier "gantz", puis le fichier "s01e01", etc..
>
> J'ai aussi essayé "for gantz in $("ls"); do mkclean --remux $gantz;  
> done", ça ne marche pas mieux. Du coup, j'ai lâchement résolu le  
> problème à coup d'underscore.

Il est toujours mieux de n'utiliser que des chiffres et des lettres
sans accents pour les noms de fichiers, ça évite des problèmes ensuite.
Bon, ceci étant dit, à postériori il y a toujours des solutions.

La solution pour éviter qu'une variable contenant le nom de fichier soit
découpée en deux à cause de l'espace, c'est de la protéger avec des
guillemets doubles :

for gantz in *; do mkclean --remux "$gantz"; done

>
> Si quelqu'un a la vraie solution, ça m'intéresse.
>
> --
> Brice Lopez
>
>
> ---
> Liste de discussions de LinuxArverne
> http://wiki.linuxarverne.org/listes_de_diffusion

---
Liste de discussions de LinuxArverne
http://wiki.linuxarverne.org/listes_de_diffusion


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/