[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Renommage en masse



Charles Plessy a écrit :
Le Wed, Aug 23, 2006 at 12:39:12PM +0200, Daniel C a écrit :
mais
find -type f -name '*TOTO*' -exec rename 's/TOTO/titi/' {} \;
renvoie "Can't rename ./unrepTOTO/unfichierTOTO /unreptiti/unfichierTOTO: Aucun fichier ou répertoire de ce type" car le rep unreptiti n'existe pas.

Dans ce cas, il faut ruser:

kunpuu|charles|$ rename -n 's#TOTO#titi#' repTOTO/fichTOTO repTOTO/fichTOTO renamed as reptiti/fichTOTO

Si tu enlève le -n tu auras une erreur...

kunpuu|charles|$ rename -n 's#(.*/?)TOTO#$1titi#' repTOTO/fichTOTO repTOTO/fichTOTO renamed as repTOTO/fichtiti

Et les fichiers qui seraient dans le rep courant ? (il devrait suffire d'appeler les fichiers avec ./ au début).

Pour le cas du fichier dans repTATA/repTOTO/fichierTOTO, le '?' doit marcher. J'essaie de garder ça en tête pour ne renommer que les fichiers mais pas les rep parents.

Bref, on peut jouer assez longtemps avec les regexp... et chaque cas est particulier.

J'espèrais que l'on pouvait utiliser
rename 's#TOTO#titi#2' *
(si on tous les fichiers à renommer sont dans un rep du rep courant)
mais ce qui marche avec sed marche pas avec rename... (apparemment on peut juste mettre g ou i comme option).

Daniel

Bonne journée,

itou



Reply to: