Bonjour,
revenant de voyage, j'ai trié mes photos issus de 2 appareils différents en les nommant de la façon suivante :
contexte_dd-mm-yyyy-hhhmmss.jpg
ca a été simple en se basant sur les données exif des photos.
Problème, apparemment un des 2 appareils a 10 minutes et 20 secondes de retard par rapport à l'autre, du coup mes photos ne sont pas bien classés chronologiquement parlant…
Je cherche donc à les renommer de nouveau en changeant le nom des photos incriminées et en appliquant ce décalage de 10m20s
Je compte utiliser rename avec une regex qui va bien, sauf que je bloque sur la faisabilité de la chose, et la syntaxe à appliquer.
Comment renommer de manière à cadrer avec ces exemples :
contexte_16-07-2016-112539.jpg en contexte_16-07-2016-111519.jpg
et plus dur
contexte_16-07-2016-110509.jpg en contexte_16-07-2016-105449.jpg
?
Ah, et… les photos sont prise entre l'aube et le crépuscule, pas besoin de s'embêter avec une photo prise à 00h05 qui provoquerait un changement de date à la veille, je n'ai heureusement pas ce problème :-)
# Regex master
Posté par Sacha Trémoureux (site web personnel) . Évalué à 1.
Sans être regex master, un language de script ou même bash peut te faire la même chose avec un peu moins de prise de tête. Tu as essayé ?
[^] # Re: Regex master
Posté par Uld (site web personnel) . Évalué à 1.
Le regex était ma seule piste, je ne suis pas assez doué pour entrevoir d'autre solutions en bash… mais je suis preneur !
[^] # Re: Regex master
Posté par pma . Évalué à 5.
En étant tordu au point de se passer de date pour n'utiliser que du Bash (contrairement à l'exemple donné plus bas):
for i in *.jpg ; do t=$((10#${i: -10:2}*3600+10#${i: -8:2}*60+10#${i: -6:2}-620)) ; mv "$i" "${i:0:-10}$(printf %02d%02d%02d $((t/3600)) $((t/60%60)) $((t%60)))${i: -4:4}" ; done
Sinon, une regexp ne fait que reconnaître un motif, pour transformer ton texte, il faut lui ajouter une autre construction. Donc grep n'est pas suffisant, mais sed l'est (en passant par de l'arithmétique unaire).
# passage par epoch ou par les seconde
Posté par NeoX . Évalué à 5.
# rename
Posté par Cᴬᴾᵀ Samavor . Évalué à 5.
Déjà attention avec rename, Debian a un rename qui gère regex et qui fonctionne totalement différemment de celui de utils-linux qu'on trouves généralement sur les autres distributions (et qui lui ne gère pas les regex).
Sinon en bash avec le rename normal (celui de util-linux) :
# jhead
Posté par i M@N (site web personnel) . Évalué à 8.
jhead est un logiciel qui permet de renommer les images en fonction des données exif et de modifier les données exif des images (man jhead)
Ce que tu peux faire :
prendre tes images dont le timestamp exif et donc le nom est décalé dans le passé et faire une copie dans un dossier puis modifier le timestamp exif en lui ajoutant 10 min 20 secondes :
et les renommer en fonction du nouveau timestamp exif :
wind0w$ suxX, GNU/Linux roxX!
# Mes deux cents
Posté par Marotte ⛧ . Évalué à 3.
J’ai eu le même besoin une fois, je m’en étais sorti avec la méthode de 태
https://linuxfr.org/forums/general-general/posts/rectifier-des-tags-sur-des-photos
# Problème résolu
Posté par Uld (site web personnel) . Évalué à 2.
Merci à tous pour toutes vos pistes, j'ai réussi à régler le problème ;-)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.