Zeph Le 05/03/2009 à 11:38 Il n'y a aucune notion de mémoire dans le globbing sous Unix, les * sont simplement transformées en fonction des fichiers disponibles. Si aucun fichier ne correspond à ton masque, ce qui a l'air d'être le cas, ton expression n'est pas transformée. Dans ton exemple, ta commande "mv *.sig *.raw" va être modifiée en "mv fichier1.sig fichier2.sig [...] *.raw" par le shell puis exécutée, ce qui va bien sûr foirer.
Tu peux essayer ça :
for file in *.sig; do mv "$file" "${file%.sig}.raw"; done
Pour la petite explication, la boucle fait un parcours sur les fichiers qui correspondent à l'expression "*.sig" en mettant le nom du fichier courant dans la variable "$file" à chaque tour de boucle. Le "mv" va ensuite exécuter le renommage, et l'expression "${file%.sig}.raw" signifie "retirer .sig à la fin de la valeur puis ajouter .raw"
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Jyaif Le 05/03/2009 à 11:43 rename -v 's/\.sig$/\.raw/' *.sig
OK, merci pour vos réponses ^^