Le 07 juin à 23:03 Isabelle Ramade a écrit
> Bonjour,
> 
> j'aimerais avoir de l'aide pour réaliser à l'aide du shell bash un
> renommage  de fichiers :
> 
> je voudrais renommer par lot des fichiers photo destinés au web :
> actuellement nommés
> 
> 2009_nomdevoyage_numerophoto.jpg
> 
> à renommer en
> 
> nomdevoyage_numerophoto_w.jpg
> 
> donc je voudrais garder la partie centrale du nom, supprimer la date,
> ajouter un suffixe _w avant l'extension .jpg
> 
> tous mes fichiers sont dans un même dossier et sont à renommer au même
> endroit.
> 
> 
On peut faire une boucle en n'utilisant que le shell (aucun appel à une 
fonction externe, mais il faut passer par une variable intermédiaire :
<code>
i=2009_nomdevoyage_numerophoto.jpg ; i=${i#2009_} ; \
echo ${i%jpg}_w.jpg
</code>

${var#patron} supprime le patron en lisant la variable par l'avant
${var%patron} supprime le patron en lisant la variable par l'avant

Dans le cas présent, je n'ai pas trouvé de solution en utilisant la 
substitution de patron dans une variable en utilisant la syntaxe 
${i/patron/remplacement} à part 
<code>
i=2009_nomdevoyage_numerophoto.jpg ; i=${i/2009_/} ; \
echo ${i/.jpg/_w.jpg}
</code>

Les solutions proposés peuvent très bien être intégrées dans une boucle.

Il pourrait aussi être intéressants de comparer differentes méthodes.

Vincent-Xavier

P.S. Les amateurs de zsh auraient utiliser la commande zmv ;-)
-- 
Rejoingez les 5125 adhérents de l'April <http://www.april.org/adherer>
Secrétaire de l'association toile-libre <http://toile-libre.org>
+33 (0) 630 803 804 <http://thetys-retz.net/~endymion/pages/Contact>
_________________________________
Linux mailing list
[email protected]
http://lists.parinux.org/mailman/listinfo/linux

Répondre à