IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

renommer les fichier par script en nom_dossier_jour.jpg


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    387
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 387
    Par défaut renommer les fichier par script en nom_dossier_jour.jpg
    Bonjour à tous,

    Voilà j'ai développer un petit script qui me permet de traiter mes image par lots, (redimensionnement, fusionnement,...)

    mais je bute sur une chose j'aimerais encore qu'il renomme tout les images par
    nom_dossier_jourmois_01.jpg
    exemple:
    dans le dossier (fiche technique) le 1janvier fiche_technique_0101_01.jpg
    ou encore
    dossier (image de coupe) le 4mars image_de_coupe_0403_01.jpg, image_de_coupe_02.jpg...

    Mais j'ai un peu de mal pour récupérer le nom du dossier et ajouter le date.
    Si quelque pouvais m'aidez ca serais génial.

    Merci à vous


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    ##############################################
    # Réduction de la taille des photos du répertoire courant avec ImageMagick
    ##############################################
     
    # Nom du nouveau répertoire
    NV_DOSSIER=reduc
    # Création du nouveau dossier s'il n'existe pas
    if [ -d $NV_DOSSIER ] ;
    then
    echo "Le dossier reduc existe déjà"
    else
    mkdir $NV_DOSSIER
    fi
     
    # Pour toutes les photos (JPG) du répertoire
    for i in *.JPG ;
    do
    # Réduit l'image en 601x400
    convert "$i" -resize 601x400  "$NV_DOSSIER/$i"
    # fusione l'image avec un calque contenant les coins
    composite -gravity center /home/sacha/Bureau/cadre.png "$NV_DOSSIER/$i" "$NV_DOSSIER/$i"
    # fin de la boucle FOR
    done 
     
    # Pour toutes les photos (jpg) du répertoire
    for i in *.jpg ;
    do
    # Réduit l'image en 601x400
    convert "$i" -resize 601x400  "$NV_DOSSIER/$i"
    # fusione l'image avec un calque contenant les coins
    composite -gravity center /home/sacha/Bureau/cadre.png "$NV_DOSSIER/$i" "$NV_DOSSIER/$i"
    # fin de la boucle FOR
    done

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 676
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    jourmois=$(date +'%d%m')
    for image in *[jJ][pP][gG]; do
       rep="${image%/*}"
       rep="${rep##*/}"
       image="${image##*/}"
       echo "${rep}_${jourmois}_$image"
    done
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Avril 2009
    Messages : 26
    Par défaut
    Autre possibilité similaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DATE="$(/usr/bin/date '+%d%m')_"
    for IMAGE in $(find  $REP -name "*.jpg")
    do
       DOSSIER="$(basename $(dirname $IMAGE))_"
       FIC="$(basename $IMAGE)"
       echo "$DOSSIER$DATE$FIC"
    done

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    387
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 387
    Par défaut
    Je te remercie mais il semble que ca ne fonctionne pas.

    Voiçi mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    ##############################################
    # Réduction de la taille des photos du répertoire courant avec ImageMagick
    ##############################################
     
    # Nom du nouveau répertoire
    NV_DOSSIER=reduc
    # Création du nouveau dossier s'il n'existe pas
    if [ -d $NV_DOSSIER ] ;
    then
    echo "Le dossier reduc existe déjà"
    else
    mkdir $NV_DOSSIER
    fi
     
    # Pour toutes les photos (JPG) du répertoire
    for i in *.[jJ][pP][gG] ;
    do
    # Réduit l'image en 601x400
    convert "$i" -resize 601x400  "$NV_DOSSIER/$i"
    # fusione l'image avec un calque contenant les coins
    composite -gravity center /home/sacha/Bureau/cadre.png "$NV_DOSSIER/$i" "$NV_DOSSIER/$i"
    # fin de la boucle FOR
    done  
     
    for image in *[jJ][pP][gG]; do
       rep="${image%/*}"
       rep="${rep##*/}"
       image="${image##*/}"
       echo "${rep}_$(date +'%y%m')_$image"
    done

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [sacha@localhost ~/Bureau/images]$ reductiontest.sh
    aze1.JPG_1001_aze1.JPG
    qsdf3.JPG_1001_qsdf3.JPG
    qsdsqd2.jpg_1001_qsdsqd2.jpg
    et le résultat il ne me renomme pas les image.?
    et dans l'echo qui est affiché on peut voir qu'il ne met pas le dossier.?

    du coup j'ai essayé de l'adapter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    # Nom du nouveau répertoire
    NV_DOSSIER=reduc
    # Création du nouveau dossier s'il n'existe pas
    if [ -d $NV_DOSSIER ] ;
    then
    echo "Le dossier reduc existe déjà"
    else
    mkdir $NV_DOSSIER
    fi
     
    # Pour toutes les photos (JPG) du répertoire
    for i in *.[jJ][pP][gG] ;
    do
    # Réduit l'image en 601x400
    convert "$i" -resize 601x400  "$NV_DOSSIER/$i"
    # fusione l'image avec un calque contenant les coins
    composite -gravity center /home/sacha/Bureau/cadre.png "$NV_DOSSIER/$i" "$NV_DOSSIER/$i"
    # fin de la boucle FOR
    done 
     
    cd "$NV_DOSSIER" 
    # mise a zero (1) du compteur
    num=1
     
    for image in *[jJ][pP][gG]; do
       rep="${image%/*}"
       rep="${rep##*/}"
       image="${image##*/}"
       echo "${rep}_$(date +'%y%m')_$image"
       var=$(echo $file | awk -F. '{print $1}')
       mv "$file" "fruit_$(date +'%y%m')_00${num}.jpg"
    ((num=num+1))
    done
    mais il me dis:
    [sacha@localhost ~/Bureau/images]$ reductiontest.sh
    aze1.JPG_1001_aze1.JPG
    mv: ne peut évaluer `': Aucun fichier ou répertoire de ce type
    qsdf3.JPG_1001_qsdf3.JPG
    mv: ne peut évaluer `': Aucun fichier ou répertoire de ce type
    qsdsqd2.jpg_1001_qsdsqd2.jpg
    mv: ne peut évaluer `': Aucun fichier ou répertoire de ce type

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    387
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 387
    Par défaut
    concernant la soluce de syjis

    [sacha@localhost ~/Bureau/images]$ reductiontest.sh
    /bin/reductiontest.sh: line 39: /usr/bin/date: Aucun fichier ou répertoire de ce type
    .__qsdsqd2.jpg

  6. #6
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    387
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 387
    Par défaut
    pour la soluce de syjis
    j'ai modifier:
    DATE="$(/usr/bin/date '+%d%m')_"
    par
    DATE="$(date '+%d%m')_"

    ce qui fonctionne mais l'echo me donne:
    ._0601_qsdsqd2.jpg
    ce qui ne m'avance pas beacoup.

  7. #7
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 676
    Par défaut
    bah, mv $file ... mais $file n'existe pas !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    rep=$(pwd)
    for image in $rep/*[jJ][pP][gG]
    ...
    done
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBS]Renommer les fichiers du répertoire courant
    Par JuS80 dans le forum VBScript
    Réponses: 2
    Dernier message: 02/03/2007, 09h17
  2. Réponses: 11
    Dernier message: 19/11/2006, 12h45
  3. Réponses: 4
    Dernier message: 07/11/2006, 10h20
  4. Trouver les fichiers par utilisateurs
    Par calfater dans le forum Windows XP
    Réponses: 2
    Dernier message: 11/10/2005, 17h30
  5. Trier les fichiers par type et les afficher par groupe ...
    Par KneXtasY dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 18/09/2005, 18h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo