(Courriels de diversion: <gargouillements@aviserait-mesestimee.com> <recachettes@usurperas-nabot.com> <affreter@nicherai-spolierais.com> <assignerions@sablier-surexcitant.com> <rassoyant@mobiliserai-espacerons.com> <croquee@dedommagees-boutonnerez.com> <decante@desertaient-grippent.com> <devront@enclume-reconcilierez.com> <inserent@gares-egrenerais.com> <infiltree@inattentive-falsification.com> )


Le samedi 14 octobre 2006 à 12:22, jdd a écrit:
> Bonjour,
> 
> C'est une question pour ceux qui connaissent bash...
> 
> Dans un script, je veux traiter des fichiers obtenus grace
> à "script *". En pratique, ici, il s'agit de traiter des
> fichiers wav avec lame pour les convertir en mp3. Lame ne
> comprends pas les expressions régulières. Il est probable
> que des versions élaborées de ce script existent déjà, ce
> n'est pas la question, j'ai parfois à faire des choses de
> ce genre et j'aimerais savoir les faire moi-même
> 
> le script de base est celui-ci:
> 
> #!/bin/sh
> for I ; do
> lame -h -v $1 $1.mp3
> shift
> done ;
> 
> si j'exécute wav2mp3 (c'est son nom) comme ceci: wav2mp3 
> *.wav, il me renvoie fichier1.wav.mp3, fichier2.wav.mp3,
> ce qui est normal
> 
> j'ai donc besoin de connaitre l'instruction bash qui me 
> donnera le nom du fichier sans l'extension pour l'utiliser
> à la place de la deuxième occurence de $1 dans le
> script...

Je crois que c'est ça que tu cherches:
lame -h -v $1 ${1%.*}.mp3

${1%.*} retire tout ce qui est a droite du dernier point
(point inclus)
${1%%.*} retire tout ce qui est a droite du premier point
(point inclus)
${1#*.} retire tout ce qui est a gauche du premier point
(point inclus)
${1##*.} retire tout ce qui est a gauche du dernier point
(point inclus)

Exemple:
sebastien@polaris:~ ]TOTO=TITI.TOTO.TUTUsebastien@polaris:~ ]echo ${TOTO%.*}TITI.TOTO
sebastien@polaris:~ ]echo ${TOTO%%.*}TITI
sebastien@polaris:~ ]echo ${TOTO#*.}TOTO.TUTU
sebastien@polaris:~ ]echo ${TOTO##*.}TUTU

Tu peux aussi faire des substitions:
${1/.wav/.mp3} pour remplacer la premiere chaine .wav par .mp3
(attention si il y a .wav dans le nom même du fichier...)
${1//.wav/mp3} remplace tous les .wav par .mp3

> merci
> jdd

-- 
@+, Sébastien aka. MichouX 
"L'énergie usée à atteindre des normes de qualité 
est inversement proportionelle au temps restant 
avant le prochain audit.", Olivier Sax

--------------------------------------------------------------------
Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>