[Linux-bruxelles] shell

sxav skyxav at skynet.be
Lun 11 Sep 21:26:54 CEST 2006


* AlainBB (alain at barbason.be) wrote:
> bonjour,
yo
> 
> Je cherche a avoir des renseignements et les modifier en bash
> sur des fichiers mp3.
> http://www.softndesign.org/manuels/unix-2.html#cmd-76
> 
> Je commence par
> 
> for fichier in `find . -name "*.mp3"`
>   do
>     echo $fichier
>   done
> 
> et d'autres variantes, et ça foire déjà, vu que j'ai une liste éclatée 
> par les espaces de mes nom de fichiers, style :
> 
> Jacques Brel Ne me quitte pas.mp3
> 
> donne
> 
> Jacques
> Brel
> Ne
> me
> quitte pas.mp3
> 
> Je commence par où ?

Par modifier la variable d'environnement IFS pour ne prendre en compte
que les "line feed" (fin de ligne) comme séparateur.

Ca se trouve quelque part dans le document que tu lis.

	IFS
	    Liste de caractères marquant la séparation entre deux mots.
	    Par défaut, cette variable contient les caractères « espace »,
	    « tabulation » et « fin de ligne ».

Solution:

$ export OLDIFS=$IFS
$ export IFS="<press enter once>
 "
$ for i in `find ...`;do echo $i;done
$ export IFS=$OLDIFS

ou

$ IFS="<press enter once>
 "; \
> for i in `find...`;do ...;done








Plus d'informations sur la liste de diffusion Linux-bruxelles