Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/07/2012, à 10:10

Djorgeo

renommer des fichiers par decalage d'indice

Bonjour à tous,

Je chercher (sans succès) sur le net un script qui me permettrait de renommer une centaine de fichier juste par décalage d'indice :
fichier1 deviendrait fichier12 ;
fichier2 deviendrait fichier13 ;
fichier3 deviendrait fichier14 ;
fichier4 deviendrait fichier15 ;
...
en conservant l'ordre initial qui a son importance.

quelqu'un aurait-il ce genre de chose ?
Merci


L'homme en noir fuyait à travers le désert, et le Pistoléro le suivait ...

Hors ligne

#2 Le 05/07/2012, à 10:11

LeXav

Re : renommer des fichiers par decalage d'indice

Pyrenamer ? assez complet, on peut faire plein de truc avec... smile


Geek dans la mode enfantine.
La Queue du Chat
Progression du libre dans la boite : 70%
Nombre d'users restant a convertir : 3 :-)

Hors ligne

#3 Le 05/07/2012, à 10:23

pingouinux

Re : renommer des fichiers par decalage d'indice

Bonjour,
Attention aux recouvrements d'indices, tester d'abord avec echo :

for i in {4..1}; do echo mv -i fichier$i fichier$((i+11)); done

Puis :

for i in {4..1}; do mv -i fichier$i fichier$((i+11)); done

Hors ligne

#4 Le 05/07/2012, à 11:07

Djorgeo

Re : renommer des fichiers par decalage d'indice

Merci bcp, tu n'imagines même pas le temps que je viens de gagner big_smile

Dernière modification par Djorgeo (Le 05/07/2012, à 11:07)


L'homme en noir fuyait à travers le désert, et le Pistoléro le suivait ...

Hors ligne

#5 Le 05/07/2012, à 14:34

sputnick

Re : renommer des fichiers par decalage d'indice

What about :

$ ls -1
a001.pnk
a002.pnk
a003.pnk
a004.pnk
a005.pnk
a006.pnk
a007.pnk
a008.pnk
a009.pnk
a010.pnk
$ rename 's/(\d+)/sprintf("%04d", $1 + 11)/e' *pnk
$ ls -1
a012.pnk
a013.pnk
a014.pnk
a015.pnk
a016.pnk
a017.pnk
a018.pnk
a019.pnk
a020.pnk
a021.pnk

le sprintf sert à garder les "leading zero", si t'a pas de zeros dans tes chiffres, ceci fera l'affaire :

rename 's/(\d+)/$1 + 11/e' *pnk

On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#6 Le 05/07/2012, à 15:30

Hizoka

Re : renommer des fichiers par decalage d'indice

tu dechires sputnick....


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#7 Le 05/07/2012, à 16:23

sputnick

Re : renommer des fichiers par decalage d'indice

Merci Hizoka smile


Pour aller plus loin et plus propre :

plus=23 rename 's/\d+/sprintf("%04d", $& + $ENV{plus})/e' *pnk

On utilise donc une variable d’environnement plus pour spécifier l’incrément.

Aussi, plus besoin de captures avec ( ), on utilise $& (comme un & de sed)

Dernière modification par sputnick (Le 05/07/2012, à 16:28)


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne