• # Pour renommer tes photos

    Posté par . En réponse au message Aide commande FIND et copier les résultats.. Évalué à 3.

    Quand je classes mes photos/vidéos pour ne pas avoir de problèmes de noms de fichiers identiques, je les renommes par date de créations.
    Je me suis fabriqué ce "script" qui extrait les données exif puis les mets en forme (et créé des fichiers txt pour chaque étapes)
    Il faut installer exif programme en ligne de commande pour extraire les données exif des photos et pyrenamer programme avec interface graphique qui permet de renommer en masse.

    En se plaçant dans le répertoire ou se trouvent les photos

    • Extrait les données exif exif *.JPG > ../0data.txt

    ici un extrait du fichier 0data.txt que j'obtiens avec la commande précédente.

    Marqueurs EXIF dans'P1010989.JPG' (ordre des octets 'Intel') :
    --------------------+----------------------------------------------------------
    Marqueur |Valeur
    --------------------+----------------------------------------------------------
    Fabricant |Panasonic
    Modèle |DMC-FZ38
    Date et heure |.&checktime(2014,09,28,':') 18:57:49
    Version d'exif |Version d'exif 2.21
    Date and Time (Origi|.&checktime(2014,09,28,':') 09:13:42
    Date and Time (Digit|.&checktime(2014,09,28,':') 09:13:42
    Components Configura|Y Cb Cr -
    --------------------+----------------------------------------------------------
    Les données EXIF contiennent une vignette (7157 octets).
    Marqueurs EXIF dans'P1010990.JPG' (ordre des octets 'Intel') :
    --------------------+----------------------------------------------------------
    Marqueur |Valeur
    --------------------+----------------------------------------------------------
    Fabricant |Panasonic
    Modèle |DMC-FZ38
    Date et heure |.&checktime(2014,09,28,':') 10:02:12
    Version d'exif |Version d'exif 2.21
    Date and Time (Origi|.&checktime(2014,09,28,':') 10:02:12
    Date and Time (Digit|.&checktime(2014,09,28,':') 10:02:12
    Components Configura|Y Cb Cr -
    --------------------+----------------------------------------------------------
    Les données EXIF contiennent une vignette (5945 octets).
    Marqueurs EXIF dans'P1010991.JPG' (ordre des octets 'Intel') :
    --------------------+----------------------------------------------------------
    Marqueur |Valeur
    --------------------+----------------------------------------------------------
    Fabricant |Panasonic
    Modèle |DMC-FZ38
    Date et heure |.&checktime(2014,09,28,':') 11:28:09
    Version d'exif |Version d'exif 2.21
    Date and Time (Origi|.&checktime(2014,09,28,':') 11:28:09
    Date and Time (Digit|.&checktime(2014,09,28,':') 11:28:09
    Components Configura|Y Cb Cr -
    --------------------+----------------------------------------------------------

    • Récupère les dates de prises de vues (< "charge" le fichier ../0data.txt)
      <../0data.txt | grep "Date and Time (Origi" > ../0rename0.txt

    • Remplace une chaîne de caractère (ici Date and Time (Origi| par rien)
      sed 's/Date and Time (Origi|//' ../0rename0.txt > ../0rename1.txt

    • Remplace les : par des -
      sed 's/:/-/'g ../0rename1.txt > ../0rename2.txt

    • Remplace les par des _
      sed 's/ /_/'g ../0rename2.txt > ../0rename3.txt

    • Remplace le 14 ème caractère par h (ici 2014年09月28日_12-49-02 devient 2014年09月28日_12h49-02)
      sed -r 's/(.{13}).(.*)/1円h2円/' ../0rename3.tx ../0rename4.txt

      • Explications
      • partie gauche de la commande
        • (.{13}) désigne les 13 premiers caractères
        • . désigne le 14 ème caractère
        • (.*) désigne la suite de l'expression
      • partie droite de la commande
        • 1円 reprends la chaîne de caractères désignée par (.{13})
        • h remplace .
        • 2円 reprends la chaîne de caractères (.*)
    • Remplace le 17 ème caractère par m (ici 2014年09月28日_12h49-02 devient 2014年09月28日_12h49m02)
      sed -r 's/(.{16}).(.*)/1円m2円/' ../0rename4.txt > ../0rename5.txt

    Tu peux directement copier-coller dans le terminal toutes les commandes d'un coup :

    exif .JPG > ../0data.txt
    < ../0data.txt | grep "Date and Time (Origi" > ../0rename0.txt
    sed 's/Date and Time (Origi|//' ../0rename0.txt > ../0rename1.txt
    sed 's/:/-/'g ../0rename1.txt > ../0rename2.txt
    sed 's/ /_/'g ../0rename2.txt > ../0rename3.txt
    sed -r 's/(.{13}).(.
    )/1円h2円/' ../0rename3.tx ../0rename4.txt
    sed -r 's/(.{16}).(.*)/1円m2円/' ../0rename4.txt > ../0rename5.txt

    Ensuite après avoir vérifié que le fichier ../0rename5.txt est cohérent, je l'utilises dans pyrenammer avec le menu "fichier/charger les noms depuis un fichier"

    Julien_c'est_bien (y'a pas que Seb)