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 19/10/2018, à 18:12

bobilesinge

[Résolu] Renommer fichiers : ajout de 0 devant les nb<100

Bonjour,
Désolé de vous embêter avec ça.

J'ai une liste de fichiers type: A_1.pdf , A_2.pdf ... jusqu'à plusieurs centaines.
Mon problème est que ces fichiers ne sont pas bien classé par ordre alphanumérique car pas de 0 devant les nombres <100 (A_12.pdf au lieu de A_012.pdf)
Je me demandais si l'un d'entre vous aurait une idée simple pour rajouter les 0 ? J'imagine qu'en ligne de commande ça devrait pouvoir se faire, mais comment exactement, je ne sais pas.
(Il y a du texte en plus derrière les nombres type A_02-xxxx.pdf   ; A est identique pour tous les fichiers, xxxxx variable)

Merci beaucoup

Dernière modification par bobilesinge (Le 20/10/2018, à 16:09)

Hors ligne

#2 Le 19/10/2018, à 18:19

bobilesinge

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

Peut-être quelque chose du genre : si dans les n premiers caractères du nom de fichier, nombre de chiffres =2, ajouter un 0 en position m (et 2 '0' si 1 chiffres) ? hmm (mais je ne sais pas le coder :-s)
(et du coup ça deviendrait un script j'imagine et non plus une ligne de commande ?)

Hors ligne

#3 Le 19/10/2018, à 18:33

Shanx

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

Non testé :

rename 's/\d+/sprintf("%03d",$&)/e' A_*

Parce que rechercher c'est bien : stackoverflow.


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#4 Le 19/10/2018, à 18:41

Postmortem

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

Salut,

prefixe="A_" # mettre à jour avec le bon préfixe
for fic in "$prefixe"*.pdf
do
   numero=${fic#"$prefixe"}
   numero=${numero%%-*}
   suffixe=${fic#"$prefixe$numero"}
   printf -v nouveau_nom '%s%03d%s' "$prefixe" "$numero" "$suffixe"
   echo mv -i "$fic" "$nouveau_nom" # enlever le « echo » si les lignes renvoyées te conviennent
done

Il faut que tes fichiers respectent bien le modèle <prefixe><numéro à modifier>-<n'importe quoi>.pdf
Et faut se placer dans le répertoire contenant les fichiers avant de lancer les commandes.


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#5 Le 19/10/2018, à 18:56

bobilesinge

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

Les deux fonctionnent ! Merci beaucoup big_smile
@Shankx : Bien vu! Ma recherche n'avait pas abouti désolé. Et merci pour la commande toute simple
@Postmortem: merci beaucoup (et bravo pour le code fait aussi vite!)
Bonne soirée et bon WE

Hors ligne

#6 Le 19/10/2018, à 19:10

bobilesinge

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

Hum, quelqu'un connaîtrait la commande pour appliquer la solution de Shanx aux fichiers des sous-dossiers?
(J'ai fait une recherche mais là je n'arrive pas sad )
Merci beaucoup

Hors ligne

#7 Le 19/10/2018, à 19:12

Watael

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

puisqu'elle est connue aussi, on pourrait directement placer l'extension dans une variable...


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#8 Le 20/10/2018, à 08:26

Brunod

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

Sinon pyrenamer n'est pas mal, et permet de travailler dans un gui avec test possible.


Windows est un système d'exploitation de l'homme par l'ordinateur. Linux, c'est le contraire...
39 pc linux convertis

Hors ligne

#9 Le 20/10/2018, à 09:27

cqfd93

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

Bonjour,

Pourquoi [question supp. svp] dans le titre ?


cqfd93

Hors ligne

#10 Le 20/10/2018, à 09:46

bobilesinge

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

merci pour vos réponses

@Watael : Merci mais je n'ai actuellement pas le niveau, désolé

@Brunod: merci

@cqfd93: le sujet initial est résolu, je demandais timidement si quelqu'un *saurait comment faire pour appliquer le script de @Shanx aux sous-dossiers d'un même dossier* (j'ai un dossier avec quelques dizaines de sous-dossiers à traiter). J'ai fait une recherche, mais je n'arrive pas ! (Pourtant je suis sur que ça ne devrait pas être compliqué :-/
Merci beaucoup

Hors ligne

#11 Le 20/10/2018, à 10:06

cqfd93

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

bobilesinge a écrit :

@cqfd93: le sujet initial est résolu,…

Quand c'est résolu, on met [Résolu] au début du titre et la discussion reste disponible pour d'autres membres qui pourraient avoir le même problème mais ça n'empêche pas de continuer la discussion.

Ce « supp. » est ambigu : ça peut aussi bien vouloir dire « supplémentaire » que « supprimée »…


cqfd93

Hors ligne

#12 Le 20/10/2018, à 10:36

Shanx

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

Encore une fois non testé :

for d in ./*/ ; do cd "$d" && rename 's/\d+/sprintf("%03d",$&)/e' A_*; done

Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#13 Le 20/10/2018, à 11:09

Postmortem

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

A vu de nez, sans tester, je ne pense pas que ça fonctionne.
Le cd va planter pour aller dans le 2eme sous répertoire car tu es dans le premier et non plus à l'endroit où tu étais quand tu fais le for d in ./*/


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#14 Le 20/10/2018, à 11:44

pingouinux

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

Bonjour,
Peut-être, en reprenant la commande de Shanx :

shopt -s globstar
rename 's/\d+/sprintf("%03d",$&)/e' **/A_*

Édité  Cette commande n'est pas correcte (voir #18):

Dernière modification par pingouinux (Le 20/10/2018, à 12:53)

Hors ligne

#15 Le 20/10/2018, à 11:57

Shanx

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

Postmortem a écrit :

A vu de nez, sans tester, je ne pense pas que ça fonctionne.
Le cd va planter pour aller dans le 2eme sous répertoire car tu es dans le premier et non plus à l'endroit où tu étais quand tu fais le for d in ./*/

Toujours sans tester : alors il suffit de remplacer "./*/" par le chemin absolu.


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#16 Le 20/10/2018, à 12:14

Postmortem

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

rep=/chemin/vers/fichier # mettre le chemin complet vers le répertoire de départ
prefixe="A_" # mettre à jour avec le bon préfixe
shopt -s globstar
for fic in "$rep"/**/"$prefixe"*.pdf
do
   numero=${fic##*/"$prefixe"}
   numero=${numero%%-*}
   suffixe=${fic##*/"$prefixe$numero"}
   rep_fic=${fic%/*}
   printf -v nouveau_nom '%s/%s%03d%s' "$rep_fic" "$prefixe" "$numero" "$suffixe"
   echo mv -i "$fic" "$nouveau_nom" # enlever le « echo » si les lignes renvoyées te conviennent
done

J'ai pas testé.


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#17 Le 20/10/2018, à 12:18

Postmortem

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

Shanx a écrit :
Postmortem a écrit :

A vu de nez, sans tester, je ne pense pas que ça fonctionne.
Le cd va planter pour aller dans le 2eme sous répertoire car tu es dans le premier et non plus à l'endroit où tu étais quand tu fais le for d in ./*/

Toujours sans tester : alors il suffit de remplacer "./*/" par le chemin absolu.

J'utilise pas rename, y'a 2-3 commandes qui s'appellent comme ça et qui ne marchent pas pareil.
Mais ce rename, s'il y a un numéro dans le chemin, il va remplacer le numéro du chemin ou il se concentre seulement sur le nom de fichier ?
Et s'il se concentre bien sur le nom de fichier, s'il y a un numéro dans le prefixe, c'est celui là qui va être changé, non ?


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#18 Le 20/10/2018, à 12:52

pingouinux

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

Postmortem #17 a écrit :

Mais ce rename, s'il y a un numéro dans le chemin, il va remplacer le numéro du chemin ou il se concentre seulement sur le nom de fichier ?

Ah oui, en effet. Ma commande en #14 ne peut donc pas marcher.

Hors ligne

#19 Le 20/10/2018, à 16:09

bobilesinge

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

Merci à tous, vous êtes trop cool !
@Shanx : ça fonctionne avec le chemin absolu (merci pour la remarque de @Postmortem
@Postmortem : ça fonctionnait à peu près, mais chose bizarre j'avais quelques noms de fichiers où bizarrement ça m'effaçait un chiffre du nombre (type 7 --> 000 au lieu de 007) du nom de fichier, sur quelques fichiers, et lorsque je relançait la commande dans le même répertoire, ça m'en effaçait quelques autres jusqu'à ce que ça se stabilise même en relançant (avec une majorité de fichiers ou ça marchait bien). Peut-être des irrégularités dans les noms de fichiers comme ça s'appuyait sur le suffixe je crois.
@Pangouinux j'ai du coup pas essayé.
Merci et bon WE
Je note [Résolu] @cqfd93, merci

Hors ligne

#20 Le 20/10/2018, à 16:47

Postmortem

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

T'as un nom de fichier (avec son chemin) où ça foire ?
C'est histoire de comprendre où mon code merdouille.


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#21 Le 20/10/2018, à 18:07

bobilesinge

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

Noms de fichiers originaux:

ITEM 10 - VIOLENCE SEXUELLE.pdf
ITEM 12 - RESPONSABILITE MEDICALE.pdf
ITEM 7 - DROITS DES PATIENTS.pdf
ITEM 8 - ETHIQUE-DEONTOLOGIE.pdf
ITEM 9 - CERTIFICAT-REQUISITION.pdf
ITEM 9 - DECES-PRELEVEMENT.pdf

ont donné:

ITEM 000- CERTIFICAT-REQUISITION_3.pdf
ITEM 000- DECES-PRELEVEMENT_3.pdf
ITEM 000- ETHIQUE-DEONTOLOGIE_1.pdf
ITEM 000- RESPONSABILITE MEDICALE_2.pdf
ITEM 000- VIOLENCE SEXUELLE_1.pdf
ITEM 007- DROITS DES PATIENTS_4.pdf

Et ce après avoir lancé plusieurs fois la commande. Au début seuls un ou deux noms de fichiers étaient concernés, puis tous les autres sauf le " 7 " meme en relançant à nouveau. J'ai relancé car j'étais intrigué en effet

Hors ligne

#22 Le 20/10/2018, à 18:13

bobilesinge

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

ou encore plus surprenant:

./ITEM 11 - SOINS PSYCHIATRIQUES SANS CONSENTEMENT_7.pdf
./ITEM 117 - HANDICAP MENTAL-PSYCHIQUE_4.pdf
./ITEM 141 - DEUIL_2.pdf
./ITEM 346 - AGITATION-DELIRE AIGU_3.pdf
./ITEM 347 - ATTAQUE DE PANIQUE_2.pdf
./ITEM 348 - SUICIDE_3.pdf
./ITEM 56 - TROUBLE SEXUALITE_0_4.pdf
./ITEM 58 - FDR-DEPISTAGE-PREVENTION PSY_1.pdf
./ITEM 59 - CLASSIFICATION TROUBLES MENTAUX_3.pdf
./ITEM 60 - OFFRE DE SOINS EN PSYCHIATRIE_3.pdf
./ITEM 61 - SCHIZOPHRENIE_5.pdf
./ITEM 62 - TROUBLE BIPOLAIRE_4.pdf
./ITEM 63 - TROUBLE DELIRANT PERSISTANT_1.pdf
./ITEM 64 - TROUBLE ANXIEUX_10.pdf
./ITEM 64 - TROUBLE DEPRESSIF_3.pdf
./ITEM 64 - TROUBLE PERSONNALITE_3.pdf
./ITEM 65 - TROUBLE ENVAHISSANT DU DEVELOPPEMENT_5.pdf
./ITEM 66 - TROUBLE COMPORTEMENT ENFANT_5.pdf
./ITEM 67 - TROUBLE PSYCHIQUE GROSSESSE-POSTPARTUM_3.pdf
./ITEM 69 - TROUBLE DU COMPORTEMENT ALIMENTAIRE_0_8.pdf
./ITEM 70 - TROUBLE SOMATOFORME_2.pdf
./ITEM 71 - PSYCHOTHERAPIE_3.pdf
./ITEM 72 - PSYCHOTROPE_13.pdf
./ITEM 74 - ADDICTION ALCOOL_3.pdf
./ITEM 75 - ADDICTION PSYCHOTROPES_1.pdf
./ITEM 76 - ADDICTION DROGUES_7.pdf
./ITEM 77 - ADDICTION COMPORTEMENTALE_2.pdf
./ITEM 78 - DOPAGE_1.pdf

donne, pareil, après la commande lancée plusieurs fois (5 à 10 fois de mémoire):

./ITEM 000- SOINS PSYCHIATRIQUES SANS CONSENTEMENT_7.pdf
./ITEM 002- TROUBLE ANXIEUX_10.pdf
./ITEM 002- TROUBLE DEPRESSIF_3.pdf
./ITEM 002- TROUBLE ENVAHISSANT DU DEVELOPPEMENT_5.pdf
./ITEM 002- TROUBLE PERSONNALITE_3.pdf
./ITEM 003- PSYCHOTHERAPIE_3.pdf
./ITEM 003- TROUBLE SEXUALITE_0_4.pdf
./ITEM 003- TROUBLE SOMATOFORME_2.pdf
./ITEM 004- ADDICTION ALCOOL_3.pdf
./ITEM 004- ADDICTION PSYCHOTROPES_1.pdf
./ITEM 004- OFFRE DE SOINS EN PSYCHIATRIE_3.pdf
./ITEM 004- SCHIZOPHRENIE_5.pdf
./ITEM 005- CLASSIFICATION TROUBLES MENTAUX_3.pdf
./ITEM 005- FDR-DEPISTAGE-PREVENTION PSY_1.pdf
./ITEM 005- PSYCHOTROPE_13.pdf
./ITEM 006- TROUBLE DU COMPORTEMENT ALIMENTAIRE_0_8.pdf
./ITEM 007- DOPAGE_1.pdf
./ITEM 022- TROUBLE BIPOLAIRE_4.pdf
./ITEM 023- TROUBLE DELIRANT PERSISTANT_1.pdf
./ITEM 024- TROUBLE COMPORTEMENT ENFANT_5.pdf
./ITEM 025- TROUBLE PSYCHIQUE GROSSESSE-POSTPARTUM_3.pdf
./ITEM 026- ADDICTION DROGUES_7.pdf
./ITEM 027- ADDICTION COMPORTEMENTALE_2.pdf
./ITEM 117- HANDICAP MENTAL-PSYCHIQUE_4.pdf
./ITEM 141- DEUIL_2.pdf
./ITEM 346- AGITATION-DELIRE AIGU_3.pdf
./ITEM 347- ATTAQUE DE PANIQUE_2.pdf
./ITEM 348- SUICIDE_3.pdf


(Je retire ce que j'avais dit sur la majorité de fichiers ou ça marchait bien tongue)

Dernière modification par bobilesinge (Le 20/10/2018, à 18:16)

Hors ligne

#23 Le 20/10/2018, à 18:27

Postmortem

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

Ah OK.
T'as une espace entre le nombre et le "-", c'est pas la même chose que le motif du premier message où tu n'avais pas mis l'espace.


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#24 Le 20/10/2018, à 18:48

Postmortem

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

J'ai pas testé mais comme ça, ça devrait être bon.
J'ai mis "ITEM<espace>" en préfixe et pris en compte l'espace entre le numéro et le "-".

rep=/chemin/vers/fichier # mettre le chemin complet vers le répertoire de départ
prefixe="ITEM "
shopt -s globstar
for fic in "$rep"/**/"$prefixe"*.pdf
do
   numero=${fic##*/"$prefixe"}
   numero=${numero%% -*}
   suffixe=${fic##*/"$prefixe$numero"}
   rep_fic=${fic%/*}
   printf -v nouveau_nom '%s/%s%03d%s' "$rep_fic" "$prefixe" "$numero" "$suffixe"
   echo mv -i "$fic" "$nouveau_nom" # enlever le « echo » si les lignes renvoyées te conviennent
done

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#25 Le 21/10/2018, à 00:42

cristobal78

Re : [Résolu] Renommer fichiers : ajout de 0 devant les nb<100

Même si  le pb est maintenant résolu je suis surpris que personne n'aie suggéré cet excellent logiciel :

gprename
"Complete batch renamer for Linux"

tout en graphique, en français et vraiment enfantin à mettre en œuvre !

Dernière modification par cristobal78 (Le 21/10/2018, à 00:43)


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne