(bash) scripter pour renommer
fractalux
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
fractalux -
fractalux -
Bonjour,
je débute en bash et je voulais faire le script suivant.
J'ai une liste d'images avec plein de noms différents "imageski004.JPG, photo 1.jpg, etc."
et je voulais les renommer ainsi
titre_01.jpg
titre_02.jpg
etc.
où "titre" est passé en argument
./renomimg titre
J'ai commencé :
mais là, ça donne titre_1.jpg, titre_2.jpg, etc.
Je bloque un peu pour leur donner la forme titre_01.jpg (ou titre_001.jpg)
Je pensais faire un truc du genre
Mais je ne sais pas quoi mettre dans les parenthèses !
je débute en bash et je voulais faire le script suivant.
J'ai une liste d'images avec plein de noms différents "imageski004.JPG, photo 1.jpg, etc."
et je voulais les renommer ainsi
titre_01.jpg
titre_02.jpg
etc.
où "titre" est passé en argument
./renomimg titre
J'ai commencé :
#! /bin/bash # Mise en minuscules .JPG > .jpg for i in *.JPG do mv "`echo $i`" "`echo $i | sed "/.JPG/s//.jpg/"`" ; done k=1 ; # image-au-pif.jpg en titre_1.jpg for i in *.jpg do mv "`echo $i`" "`echo "$1_$k.jpg"`" ; let "k=$k + 1" done
mais là, ça donne titre_1.jpg, titre_2.jpg, etc.
Je bloque un peu pour leur donner la forme titre_01.jpg (ou titre_001.jpg)
Je pensais faire un truc du genre
do mv "`echo $i`" "`echo $i.jpg | sed "/_(nb d'1 seul chiffre).jpg/s//_0(le même chiffre).jpg/"`" ;
Mais je ne sais pas quoi mettre dans les parenthèses !
A voir également:
- (bash) scripter pour renommer
- Renommer des fichiers en masse - Guide
- Renommer iphone - Guide
- Comment renommer quelqu'un sur instagram - Guide
- Instagram : le nom d'utilisateur est il inéchangeable ? - Forum Instagram
- Bingo bash - Télécharger - Divers Jeux
4 réponses
Salut,
Essaie ça
J'ai créer deux fichiers selon ton exemple et j'ai mis un contenu pour vérifier.
Tu peux configurer le format de printf en fonction de nombre de tes photos.
Essaie ça
J'ai créer deux fichiers selon ton exemple et j'ai mis un contenu pour vérifier.
Tu peux configurer le format de printf en fonction de nombre de tes photos.
$ ls -l total 8 -rw-r--r-- 1 lami20j lami20j 6 oct 25 19:55 imageski004.JPG -rw-r--r-- 1 lami20j lami20j 6 oct 25 19:55 photo 1.jpg $ cat imageski004.JPG image lami20j@debian:~/jpg$ cat photo\ 1.jpg photo $ l=0;for i in $(ls *.[Jj][Pp][Gg]|tr " " _);do l=$(($l+1));mv -v "${i/_/ }" "$(printf "titre_%04d.jpg" $l)";done `imageski004.JPG' -> `titre_0001.jpg' `photo 1.jpg' -> `titre_0002.jpg' $ ls -l total 8 -rw-r--r-- 1 lami20j lami20j 6 oct 25 19:55 titre_0001.jpg -rw-r--r-- 1 lami20j lami20j 6 oct 25 19:55 titre_0002.jpg $ cat titre_0001.jpg image $ cat titre_0002.jpg photo
ok merci.
Du coup mon code ressemble à ça.
Je vais essayer d'adapter mon nombre de chiffres en fonction du nombre d'images...
Du coup mon code ressemble à ça.
# Mise en minuscules .JPG > .jpg for i in *.JPG ; do mv "`echo $i`" "`echo $i | sed "/.JPG/s//.jpg/"`" ; done k=1 ; for i in *.jpg do mv -v "$i" "$(printf "$1_%03d.jpg" $k)" ; let "k=$k + 1" ; done
Je vais essayer d'adapter mon nombre de chiffres en fonction du nombre d'images...