Le Mardi, 25 Janvier 2005 18.49, Philippe Strauss a �crit :
> A ce propos:
> J'avais une s�rie de fichier .wav dont le e accent aigu �tait pas
> bien interpr�t� (on voyait un ? a la place).
> Comment faire pour renommer tout d'un coup, genre:
>
> for i in *.wav; do mv $(echo \"$i\") $(echo \"$i\" | sed -e
> "s/NoirD.sir/Noir D�sir/g") ; done
>
> ca me donnait "mv: when moving multiple file, destination must be a
> directory"
[EMAIL PROTECTED]:/tmp/test2> ls
Noir Daasir - 1.wav �Noir Daasir - 4.wav �Noir Daasir - 7.wav
Noir Daasir - 2.wav �Noir Daasir - 5.wav �Noir Daasir - 8.wav
Noir Daasir - 3.wav �Noir Daasir - 6.wav �Noir Daasir - 9.wav
[EMAIL PROTECTED]:/tmp/test2> for i in *; do mv "$i" "$(echo "$i" | sed -e
"s/Noir
Daasir/Noir D�sir/g")" ; done
[EMAIL PROTECTED]:/tmp/test2> ls
Noir D�sir - 1.wav �Noir D�sir - 4.wav �Noir D�sir - 7.wav
Noir D�sir - 2.wav �Noir D�sir - 5.wav �Noir D�sir - 8.wav
Noir D�sir - 3.wav �Noir D�sir - 6.wav �Noir D�sir - 9.wav
Avec votre m�thode, le " (i.e. \" apr�s avoir �t� interpr�t� par le shell) est
consid�r� comme un caract�re faisant partie du nom de fichier, et non comme
un moyen de faire comprendre au shell que l'argument est compos� de plusieurs
mots.
[EMAIL PROTECTED]:/tmp/test2> touch test
[EMAIL PROTECTED]:/tmp/test2> echo \"test\"
"test"
[EMAIL PROTECTED]:/tmp/test2> mv $(echo \"test\") test2
mv: ne peut �valuer `"test"': Aucun fichier ou r�pertoire de ce type
[EMAIL PROTECTED]:/tmp/test2> mv "test" test2
[EMAIL PROTECTED]:/tmp/test2> ls test*
test2
De mani�re g�n�rale, d'apr�s mon exp�rience (touristique), il suffit de mettre
les arguments entre guillemets doubles ("$i", "$(echo test)") pour �viter les
ennuis.
bye,
� �julien.
_______________________________________________
gull mailing list
[email protected]
http://lists.alphanet.ch/mailman/listinfo/gull