Tout ou presque sur les logiciels libres, linux, protection de la vie privée... et aussi Humeur!

Aller au contenu | Aller au menu | Aller à la recherche

Renommer les photos sans utiliser les métadonnées Exif

Renommer les photos sans utiliser les métadonnées EXIFRenommer sans utiliser les métadonnées Exif.

De retour de vacances, il n'est pas rare de se retrouver avec répertoire contenant plus de 400 photos avec des noms de fichiers du genre:
dsc_0007.jpg
dsc_0009.jpg
dsc_0016.jpg

Or on souhaite que les noms soient plus explicites, genre «2010-07-vancances-numéro.jpg»

Faire des modifications une par une est fastidieux, c'est là qu'intervient la commande «sed»

On va utiliser une boucle «for, do, done», J'ai déjà donné les explications sur le billet "Initiation au shell boucle (for, do, done)" (la punition de mon fils).

Voici la ligne magique avec la commande «sed»:
for i in dsc_*; do mv $i `echo $i | sed "/^dsc_/s//2010-07-vacances-/"`; done

"dsc_" sera remplacé par "2010-07-vacances-"

Ce qui donnera des noms de fichier du genre :

2010-07-vacances-0007.jpg
2010-07-vacances-0009.jpg
2010-07-vacances-0016.jpg

Pour éviter de retaper la ligne on peut faire un mini script:

#!/bin/bash
# renommer des photos dans le répertoire courant.
echo "Entrez ce que vous souhaitez remplacer, ex. dsc_, DSC ..."
echo "Gardez la numérotation finale des photos..."
echo -n "respectez les la casse, majuscules / Minuscules : "
read rempl
echo -n "Entrez ce que vous souhaitez voir à la place : "
read souhait
for i in "$rempl"*
do mv $i `echo $i | sed "/^"$rempl"/s//"$souhait"/"`
done
echo "TERMINE"

On va le nommer "renom-photos.sh"

Le rendre exécutable par:

chmod +x renom-photos.sh

Plaçons-le dans le répertoire courant et utilisons-le.
Voyons ce qu'il y a dans le répertoire courant.

$ ls -l
total 10764
-rwxr-xr-x 1 sima78 sima78 2231659 2010-06-13 16:07 DSC_0007.JPG
-rwxr-xr-x 1 sima78 sima78 2720329 2010-06-13 16:09 DSC_0009.JPG
-rwxr-xr-x 1 sima78 sima78 1996609 2010-06-18 15:04 DSC_0016.JPG
-rwxr-xr-x 1 sima78 sima78     383 2010-08-17 20:55 renom-photos.sh
-rwxr-xr-x 1 sima78 sima78 2036985 2010-06-18 15:03 souhait0015.JPG
-rwxr-xr-x 1 sima78 sima78 1996609 2010-06-18 15:04 souhait0016.JPG

On voit aussi le script qui se termine par .sh et je souhaite renommer mes photos DSC_*
Je lance le script et réponds au 2 questions...

$ ./renom-fotos.sh
Entrez ce que vous souhaitez remplacer, ex. dsc_, DSC ... (ici se serait DSC_)
Gardez la numérotation finale des photos...
respectez les la casse, majuscules / Minuscules : DSC_
Entrez ce que vous souhaitez voir à la place : 2010-07-vacances-
TERMINE

Voyons le résultat.

$ ls -l
total 10764
-rwxr-xr-x 1 sima78 sima78 2231659 2010-06-13 16:07 2010-07-vacances-0007.JPG
-rwxr-xr-x 1 sima78 sima78 2720329 2010-06-13 16:09 2010-07-vacances-0009.JPG
-rwxr-xr-x 1 sima78 sima78 1996609 2010-06-18 15:04 2010-07-vacances-0016.JPG
-rwxr-xr-x 1 sima78 sima78     383 2010-08-17 20:55 renom-fotos.sh
-rwxr-xr-x 1 sima78 sima78 2036985 2010-06-18 15:03 souhait0015.JPG
-rwxr-xr-x 1 sima78 sima78 1996609 2010-06-18 15:04 souhait0016.JPG
drwxr-xr-x 2 sima78 sima78    4096 2010-08-17 20:50 sous-photos

Il a donc bien modifier les fichiers commençant par "DSC_"

Maintenant, tout ça peut être perfectionné... à vos shells.

Articles à lire sur des sujets Similaires

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rétrolien : https://chispa.fr/sima78/index.php?trackback/10

Fil des commentaires de ce billet