Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forums MacBidouille _ La Programmation En Général _ récupérer nom des fichiers

Écrit par : hubeert 20 Aug 2017, 16:02

bonjour a tout le monde;
Dans un dossier ou se trouve des photos ; je cherche a récupérer le nom des fichiers et de les renommer.
par exemple photo1.JPG
photo2.JPG
dans le terminal
la commande me récupère tous les noms des fichiers dans mon dossier photo
la commande renomme les fichiers ( extension comprise) en "photo1.JPG", ( la virgule c'est pour faire un tableau)
a la sortie j'aurai ca "photo1.JPG", "photo2.JPG", etc etc
de fait je n'aurai plus qu'a récupérer cette chaine, enlever la dernière virgule et faire un tableau ( c'est pour faire une galerie en php)
Si c ela est possible bien entendu.
merci beaucoup.

Écrit par : _Panta 20 Aug 2017, 17:42

Salut,

Il y a peut être plus élégant, mais j'ai pondu ce script, qui fonctionne.
Ouvre un terminal, rends toi dans le dossier contenant les photos à renommer et colle cette commande:

for i in *.jpg ; do mv $i Photo_$PHOTO".jpg"; PHOTO=$[PHOTO+1]; done ; ls *.jpg >> liste_photos.csv

cela va renommer tous les jpg du dossier dans lequel tu te trouves en Photo_1.jpg Photo_2.jpg Photo_3.jpg etc et ecrire un listing de ces photos dans ce repertoires sous le nom liste_photos.csv (Comma-Separated Values) que tu pourras utiliser pour un tableau.


-- Tu peux copier la commande dans un fichier que tu rendras executable, plus pratique si tu as plusieurs dossiers à traiter

Tu créés le fichier:
nano rename_image.sh

Tu y colles le code suivant

Code
for i in *.jpg;
do mv $i Photo_$PHOTO".jpg";
PHOTO=$[PHOTO+1];
ls *.jpg  >> liste_photos.csv;
done;

Tu le rends executable
chmod +x rename_image.sh

et tu l'executes par
./rename_image.sh

Écrit par : hubeert 20 Aug 2017, 18:36

coucou _Panta.
Merci de la peine que tu te donnes.
lorsque tu me dis rends toi dans le dossier; c'est a dire j'indique le chemin? il y a tel une separation entre le chemin et le script ? ( il me fait une erreur : -bash: syntax error near unexpected token `do')
merci
sinon j'ai trouvé une solution avec avec la commande clic droit sur les fichiers sélectionnés " renommer les fichiers"
format nom et index
emplacement avant le nom
format personnalisé (la je mets le nom que je veux)
commencer la numérotation a 1
je me retrouve avec un nom de fichier : 1maPhoto.JPG etc etc
ensuite sur le serveur j'importe ce dossier
et dans une boucle je récupère les photo que je veux afficher dans mon html.

Comme tu dis il a surement plus optimisé et plus élégant; mais c'est juste pour faire une galerie de temps en temps, genre fête de famille; afin que tous puissent récupère les photos qui les intéresse.
En tout cas merci pour tout.
si ca intéresse quelqu'un jai la commande pour faire les vignettes et pour réduite la taille des photos dans le terminal.

Merci a toi

Écrit par : _Panta 20 Aug 2017, 19:09

Tu demandais "en ligne de commande". Il y a plein d'outil graphique sinon tongue.gif
Copie-colle la ligne que j'ai donné, elle est correcte.
for i in *.jpg ; do mv $i Photo_$PHOTO".jpg"; PHOTO=$[PHOTO+1]; done ; ls *.jpg >> liste_photos.csv

Il faut que être dans le repertoire que tu veux attaquer naturellement, donc cd Pictures/mon_dossier par exemple

Écrit par : hubeert 20 Aug 2017, 19:50

coucou.
je ne suis pas spécialement branché ligne de commande !! biggrin.gif
oui évidement je lai copié collé. mais jai le message d'erreur, sans doute ne sait il pas ou est le dossier.
j'ai juste ouvert le terminal ; mis le chemin absolu du dossier puis tapé ta commande. et jai le message d'erreur.
je crois savoir d'ou viens l'erreur. huh.gif
*jpg alors que dans mon dossier c'est JPG. et vraiment merci i

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)