[Shell/Linux] Renommer fichiers+numerotations
Résolu/Fermé
A voir également:
- [Shell/Linux] Renommer fichiers+numerotations
- Renommer plusieurs fichiers - Guide
- Wetransfer gratuit fichiers lourd - Guide
- Renommer iphone - Guide
- Classic shell windows 10 français - Télécharger - Personnalisation
- Explorateur de fichiers - Guide
5 réponses
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
Modifié par Char Snipeur le 6/10/2011 à 12:26
Modifié par Char Snipeur le 6/10/2011 à 12:26
Salut.
le plus simple pour moi, c'est d'utiliser une boucle for avec des nombres.
Seulement, quelques petites questions : connais tu le numéro de départ ?
Combien de fichiers ?
un truc dans le genre devrais fonctionné :
La vrai soumission c'est quand les esclaves s'inquiètent du cours du coton.
Char Snipeur
le plus simple pour moi, c'est d'utiliser une boucle for avec des nombres.
Seulement, quelques petites questions : connais tu le numéro de départ ?
Combien de fichiers ?
un truc dans le genre devrais fonctionné :
nb=$(wc -l $(ls IMGP*.jpg) ) deb=2344 for (( n=1;n<=nb;++n )) do : if (( n<10 )) ;then : ext="000"$n elif (( n<100 )) ;then : ext="00"$n fi mv IMGP$(deb+n).jpg IMG_$(ext).jpg doneJe n'ai pas testé, il y a surement pas mal d'erreurs de syntaxe, mais c'est l'idée.
La vrai soumission c'est quand les esclaves s'inquiètent du cours du coton.
Char Snipeur
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
6 oct. 2011 à 14:37
6 oct. 2011 à 14:37
Salut,
Si le résultat affiché à l'écran te satisfait, décommente la ligne
#mv -v "${fic}" "${fic/P????/_${k: -4}}"
et commente celle commençant par "echo".
;-))
#! /bin/bash i=1 j=0000 for fic in IMG* do k=${j}${i} #mv -v "${fic}" "${fic/P????/_${k: -4}}" echo "mv -v ${fic} ==>> ${fic/P????/_${k: -4}}" ((i++)) done
Si le résultat affiché à l'écran te satisfait, décommente la ligne
#mv -v "${fic}" "${fic/P????/_${k: -4}}"
et commente celle commençant par "echo".
;-))
Salut!
Merci de ta réponse!!
Je n'ai pas testé ta solution, mais il me semble qu'il risque d'y avoir un problème si j'ai un "trou" dans ma liste de fichiers.
Sachant que je souhaite renommer tous les fichiers du dossier est ce que quelque chose comme ça pourrait fonctionner?
Merci de ta réponse!!
Je n'ai pas testé ta solution, mais il me semble qu'il risque d'y avoir un problème si j'ai un "trou" dans ma liste de fichiers.
Sachant que je souhaite renommer tous les fichiers du dossier est ce que quelque chose comme ça pourrait fonctionner?
nb=$(wc -l $(ls *.jpg) ) $var=(ls *.jpg) for (( n=1;n<=nb;++n )) do : if (( n<10 )) ;then : ext="000"$n elif (( n<100 )) ;then : ext="00"$n fi mv $var IMG_$(ext).jpg done
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
6 oct. 2011 à 14:25
6 oct. 2011 à 14:25
Oui, ma réponse était soumise à conditions : d'où mes questions.
si tu n'as pas besoin de conserver l'ordre
si tu n'as pas besoin de conserver l'ordre
n=0 for var in $(ls *.jpg) do : (( n++ )) if (( n<10 )) ;then : ext="000"$n elif (( n<100 )) ;then : ext="00"$n fi mv $var IMG_$(ext).jpg doneEnsuite avec les options de ls tu doit pouvoir les trier comme tu veux, ou alors conjuguer à 'sort'.
Merci beaucoup zipe31 et Char Snipeur!
zipe31, je garde ta solution sans trop la comprendre! Je l'ai légèrement modifiée:
Char Snipeur, j'ai appris quand même plein de choses et j'étais pas loin d'y arriver avec ta base!!
zipe31, je garde ta solution sans trop la comprendre! Je l'ai légèrement modifiée:
for fic in *.JPG
Char Snipeur, j'ai appris quand même plein de choses et j'étais pas loin d'y arriver avec ta base!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour!
J'up le sujet, j'ai en effet un petit souci!
Je souhaiterai conserver la structure proposée par Zipe31, mais qu'elle fonctionne pour n'importe quel patern de nom en *.JPG
Quelqu'un aurait une idée?
D'avance merci!!
:)
J'up le sujet, j'ai en effet un petit souci!
Je souhaiterai conserver la structure proposée par Zipe31, mais qu'elle fonctionne pour n'importe quel patern de nom en *.JPG
Quelqu'un aurait une idée?
D'avance merci!!
:)
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
20 oct. 2011 à 13:33
20 oct. 2011 à 13:33
Salut,
Il suffit de changer :
${fic/P????/_${k: -4}}
par :
${fic/\./_${k: -4}.}
Il suffit de changer :
${fic/P????/_${k: -4}}
par :
${fic/\./_${k: -4}.}
Merci zipe!
En fait j'utilise toute sortes de paterns d'entrée genre: ABC_1234.JPG ou IMGP1234.JPG ou encore IMG_1234.JPG
C'est le problème du underscore, non? ... Avec ta solution, j'ai un résultat du type ABC_1234_0001.JPG
Si on imaginais plutôt de supprimer complêtement le nom pour avoir quelque soit les noms des images? Imaginons que j'ai plusieurs images avec plusieurs noms différents?
Je souhaiterais avoir en sortie un résultat du type IMG_0001.JPG IMG_0002.JPG etc etc...
En fait j'utilise toute sortes de paterns d'entrée genre: ABC_1234.JPG ou IMGP1234.JPG ou encore IMG_1234.JPG
C'est le problème du underscore, non? ... Avec ta solution, j'ai un résultat du type ABC_1234_0001.JPG
Si on imaginais plutôt de supprimer complêtement le nom pour avoir quelque soit les noms des images? Imaginons que j'ai plusieurs images avec plusieurs noms différents?
Je souhaiterais avoir en sortie un résultat du type IMG_0001.JPG IMG_0002.JPG etc etc...
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
20 oct. 2011 à 13:54
20 oct. 2011 à 13:54
Ok, je me disais aussi ;-\
Essaye avec :
${fic/*\./IMG_${k: -4}.}
Essaye avec :
${fic/*\./IMG_${k: -4}.}
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
20 oct. 2011 à 13:54
20 oct. 2011 à 13:54
le plus simple serait que zipe explique ce qu'il fait, histoire que tu puisse adapter.