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

Langage Perl Discussion :

execution instruction sur plusieurs fichiers


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2005
    Messages : 36
    Par défaut execution instruction sur plusieurs fichiers
    Bonjour,
    Je cherche a executer mon script non pas sur un fichier mais sur autant de fichiers txt que je trouve ds mon repertoire et sous repertoire...

    Pour le moment j ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #!/usr/bin/perl -s
    Use strict;
    Use Time::Local
    my $txt;
     
    ($txt) = glob ("dir/*.txt);
     
    Open(FILE, "$txt") or die "erreur";
     
    While (my $ligne = <FILE>){
    Instructions...
    }
    Si je mets 2 fichiers txt ds mon repertoire, le script ne s'executequ'une seule fois...

    Une idee pour boucler sur tous les fichiers txt d'un repertoire et sous-repertoire?

    J'ai bidouiller qq trucs avec readdir, mais rien de bin: je ne pense pas qu'il faille partir la dessus.
    Merci

    Mashu

  2. #2
    Membre émérite Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Par défaut
    le code présenté là ne traite qu'un seul fichier, tu dois le modifier un peu

    regarde dans la faq comment gérer un répertoire, ça pourrait t'aider

  3. #3
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Une autre manière de traiter le problème, dans certains (notamment s'il n'est pas nécessaire de ré-écrire chaque fichier ; il est possible de traiter ce cas, mais c'est plus compliqué que la méthode de parcourir les fichiers avec glob), est d'utiliser l'opérateur <> et de fournir tous les fichiers à traiter en paramètre du script.

  4. #4
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ($txt) = glob ("dir/*.txt);
    ne récupère qu'un seul fichier, le premier qui vient.

    Si tu veux en avoir plusieurs, il faut:

    @files = = glob ("dir/*.txt);[/CODE]

    Ensuite, tu peux vérifier chaque fichier individuellement.

  5. #5
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Septembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3
    Par défaut
    Si tu dois parcourir ton répertoire en profondeur, regarde le module File::Find.
    Il permet d'appliquer une fonction à tous les fichiers d'une liste d'arborescence.

Discussions similaires

  1. Executer un code en java sur plusieurs fichiers xml en même temps
    Par med_ellouze dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 12/08/2007, 16h33
  2. Macros sur Plusieurs fichiers Excel
    Par Echizen1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/06/2006, 11h21
  3. Sed sur plusieurs fichiers
    Par gangsoleil dans le forum Linux
    Réponses: 4
    Dernier message: 21/02/2006, 11h55
  4. #define sur plusieurs fichiers
    Par [thebadskull] dans le forum C
    Réponses: 5
    Dernier message: 14/10/2005, 20h52
  5. Réponses: 4
    Dernier message: 03/12/2004, 11h18

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