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 :

Boucle pour copier fichiers


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut Boucle pour copier fichiers
    Bonjour,

    J'ai des fichiers de résultats qui sont placés vi un chemin du style :

    EXPERIENCE/PROCESS/JOUR001/TEST03/*.bin

    où seul le numéro de JOUR change (EXPERIENCE/PROCESS/JOUR002/TEST03/*.bin , JOUR003/TEST03/*.bin)

    que j'aimerais mettre dans un repertoire de chemin (déjà crée)

    RESULT/JOUR001/

    où encore une fois seul le dossier jour change (RESULT/JOUR001/ RESULT/JOUR002/ RESULT/JOUR003/ etc..)

    Il faut que les résultats d'un même jour aille bien dans le dossier RESULT/JOURX du jour correspondant

    J'ai écrit un truc du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    for DAY in {0..352} ; 
    do
      cp -R "EXPERIENCE/PROCESS/JOUR${DAY}/TEST03/*.bin" "RESULT/JOUR${DAY}/" 
    done
    Merci d'avance pour tout aide.

    Note: les numéros de jour sont tjs TOUJOURS composés de 3 chiffres: de 001 à 352
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

  2. #2
    Membre habitué
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Décembre 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Décembre 2013
    Messages : 70
    Points : 159
    Points
    159
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for day in {000..352}
    do
       for fic in "EXPERIENCE/PROCESS/JOUR$day/TEST03/"*.bin
       do
          cp "$fic" "RESULT/JOUR$day/"
       done
    done

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut
    niquel

    merci
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for day in {000..352}
    do
       cp --target-directory="RESULT/JOUR$day/" "EXPERIENCE/PROCESS/JOUR$day/TEST03/"*.bin
    done
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre habitué
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Décembre 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Décembre 2013
    Messages : 70
    Points : 159
    Points
    159
    Par défaut
    Oui, je sais pas pourquoi je suis parti sur une 2eme boucle... Pourquoi faire simple quand on peut faire inextricable !

    Par contre, petite question, pourquoi utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cp --target-directory="RESULT/JOUR$day/" "EXPERIENCE/PROCESS/JOUR$day/TEST03/"*.bin
    Plutôt que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cp "EXPERIENCE/PROCESS/JOUR$day/TEST03/"*.bin "RESULT/JOUR$day/"
    ?
    Et dans quel cas cette option --target-directory est-elle vraiment utile ?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    par souci de clarté, et parce que on oublie facilement le slash final; ce qui indiquerait alors non un répertoire, mais un fichier.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  7. #7
    Membre habitué
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Décembre 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Décembre 2013
    Messages : 70
    Points : 159
    Points
    159
    Par défaut
    OK, merci

  8. #8
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 287
    Points : 12 744
    Points
    12 744
    Par défaut
    On peut aussi éviter la boucle avec tar:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tar --xform='s@EXPERIENCE/PROCESS/\(JOUR...\)/TEST03@RESULT/\1@' -cf - EXPERIENCE/PROCESS/JOUR*/TEST03/*.bin | tar -xf -
    Cordialement.

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

Discussions similaires

  1. Copier coller fichier en boucle
    Par vins86 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/11/2014, 07h40
  2. copier coller fichier xml différences de comportement
    Par cotede2 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 09/06/2009, 12h27
  3. copier coller fichier
    Par the_djjd dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/04/2009, 16h55
  4. [POI]copier/coller fichier Excel
    Par yas2006 dans le forum Documents
    Réponses: 3
    Dernier message: 23/03/2006, 20h16
  5. Copier coller Fichier windows
    Par KPitN dans le forum Windows
    Réponses: 8
    Dernier message: 20/04/2004, 17h32

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