Merci Patrick
La formule finale qui marche nickel :
ls -1 *VM-* | sed -E "s/(.*)(VM\-[0-9]+)(.*)/mv '\\1\\2\\3' '\\1VM\-4\
\3'/g"
Le 16 mai 08 à 11:17, Patrick Proniewski a écrit :
> Bonjour,
>
> On 16 mai 08, at 10:59, Maurice Inzirillo 4DNC wrote:
>
>> Exemple :
>>
>> fichier original : 'Windows XP Professional VM-2-s025.vmdk'
>> nouveau nom du fichier: 'Windows XP Professional VM-4-s025.vmdk'
>>
>> Voilà la ligne de commande que j'ai réalisé
>>
>> ls -1 *VM-* | sed -E "s/(.*)(VM\-[0-9]+)(.*)/printf \"mv \'\\1\\2\
>> \3\'
>> \'\\1VM\-4\\3\'\"/g" | sh
>>
>> Le résultat n'est pas tout à fait probant car cela me donne une
>> enfilade du type :
>>
>>
>> mv 'Windows XP Professional VM-2-000001-s001.vmdk' 'Windows XP
>> Professional VM-4-000001-s001.vmdk'mv 'Windows XP Professional
>> VM-2-000001-s002.vmdk' 'Windows XP Professional VM-4-000001-
>> s002.vmdk'mv 'Windows XP Professional VM-2-000001-s003.vmdk' 'Windows
>
> effectivement, cela ne risque pas de fonctionner très bien. Je
> m'interroge pas mal sur ton printf. Si tu envoies du printf dans sh,
> c'est normal que le résultat soit un printf des arguments de ce
> dernier.
>
> Tu envoies ça à sh :
>
> printf "mv 'Windows XP Professional VM-1-000001-s001.vmdk' 'Windows
> XP Professional VM-4-000001-s001.vmdk'"
>
> c'est normal qu'en sortie tu ais :
>
> mv 'Windows XP Professional VM-1-000001-s001.vmdk' 'Windows XP
> Professional VM-4-000001-s001.vmdk'
>
> Maintenant, en supprimant le printf et les guillemets on a :
>
> ls -1 *VM-* | sed -E "s/(.*)(VM\-[0-9]+)(.*)/mv \'\\1\\2\\3\' \'\
> \1VM\-4\\3\'/g" | sh
>
> qui exécute bien tes mv. Néanmoins, ce n'est pas prudent, je te
> recommande de faire une première exécution "à blanc" pour voir ce
> que ça donne :
>
> ls -1 *VM-* | sed -E "s/(.*)(VM\-[0-9]+)(.*)/mv \'\\1\\2\\3\' \'\
> \1VM\-4\\3\'/g"
>
> tu obtiens alors le listing des commandes mv à effectuer. Tu valides
> qu'il fait pas de bêtise, et tu refais la même commande avec "| sh".
>
>
>
> patpro
>
> _______________________________________________
> archives :
> http://listes.patpro.net/list/sshfr.fr.html
> http://listes.patpro.net/mailman/listinfo/script_shell_fr
Cordialement
Maurice Inzirillo
--
4D NET Center S.A.
_______________________________________________
archives :
http://listes.patpro.net/list/sshfr.fr.html
http://listes.patpro.net/mailman/listinfo/script_shell_fr