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


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Répondre à