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 :

[Bash] Comment créer facilement des fichiers dont l'arborescence n'existe pas


Sujet :

Shell et commandes GNU

  1. #1
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut [Bash] Comment créer facilement des fichiers dont l'arborescence n'existe pas
    Bonjour,

    J'ai un fichier dans le quel j'ai une liste de fichier à créer, un peu comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    /2008/EN/fichier1.txt
    /2007/FR/fichier3.txt
    /2008/IT/fichier1.txt
    /2008/EN/234/fichier1.txt
    /2008/EN/456/444/fichier1.txt
    /2008/EN/fichier3.txt
    /2007/EN/fichier5.txt
    /2008/SV/7890/222/fichier4.txt
    Il faudrait que je boucle sur cette liste de fichier (ça c'est pas trop le pb) et ensuite que je crée chaque fichiers de chaque ligne, sachant que la structure des répertoires dans cette liste n'existe pas forcemment sur le disque.

    Est ce possible facilement ? Avec une seule commande ? sinon comment obtenir le meilleur résultat ?

    Merci d'avance

  2. #2
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    avec mkdir tout simplement...

    il y a une option pour creer le repertoire avec ses sous repertoires

    pour tout ligne dans cat fichier_liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    fichier=lignedecoupee
    chemin=lignedecoupee
    check si existe repertoire
    cp/mv fichier repertoire
    sinon
    creer repertoire
    cp/mv fichier repertoire
    fin

  3. #3
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    J'ai un peu plus court avec la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mkdir  -p 2008/EN/456/444/
    Effectivement je lis mon fichier ligne par ligne, j'extrais la chaîne correspondant à l'arborescence, et je passe le chemin à mkdir avec l'option -p qui crée le parent s'il n'existe pas.

    Merci beaucoup pour ton aide.

  4. #4
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    c'est plus court mais tu n'aura pas tout les cas
    vu la liste que tu donnes en exemple

  5. #5
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    Citation Envoyé par frp31 Voir le message
    c'est plus court mais tu n'aura pas tout les cas
    vu la liste que tu donnes en exemple
    Pas tous les cas ? c'est à dire ?

    Avec la liste en exemple j'aurai, extraction de l'arborescence (volontairement retiré le / pour une création dans le répertoire courant) qui donne :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    2008/EN/
    2007/FR/
    2008/IT/
    2008/EN/234/
    2008/EN/456/444/
    2008/EN/
    2007/EN/
    2008/SV/7890/222/
    Puis lecture de chaque ligne et exécution du mkdir ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    mkdir  -p 2008/EN/
    mkdir  -p 2007/FR/
    mkdir  -p 2008/IT/
    mkdir  -p 2008/EN/234/
    mkdir  -p 2008/EN/456/444/
    mkdir  -p 2008/EN/
    mkdir  -p 2007/EN/
    mkdir  -p 2008/SV/7890/222/
    Ce qui donnera l'arborescence finale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    +2007
       +FR
    +2008
       +EN
          +234
          +456
             +444
       +IT
       +SV
          +7890
             +222
    Non ? y a t'il un souci avec ça ?

    Merci d'avance

  6. #6
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    mieux vaut faire une boucle parceque si ta liste change avec une boucle ça va prendre en compte tous les cas possibles de modifs

    si tu mets en dur aucune modif n'est possible sans modifier le script.

  7. #7
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    La création de la structure des répertoires ne sera faite qu'une seule fois. Si nous avons besoin de recréer la structure on supprimera récursivement la structure puis nous la recréerons par après.

    Dans ce contexte, pas de souci ?

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

Discussions similaires

  1. Comment créer facilement un fichier pdf et l'imprimer ?
    Par tasnim86 dans le forum wxPython
    Réponses: 4
    Dernier message: 24/08/2008, 20h25
  2. Réponses: 1
    Dernier message: 01/09/2006, 20h13
  3. Comment créer un bouton FICHIER(liste déroulante)
    Par vantoff dans le forum C++Builder
    Réponses: 10
    Dernier message: 20/07/2006, 09h08
  4. Réponses: 4
    Dernier message: 16/08/2003, 13h21

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