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

Applications et environnements graphiques Discussion :

Automatiser des jobs avec le shell


Sujet :

Applications et environnements graphiques

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 96
    Points : 72
    Points
    72
    Par défaut Automatiser des jobs avec le shell
    Bonjour à tous,

    je dispose d'un dossier contenant une centaine de fichiers, j'aimerai lancer un job dans mon shell sur chacun de ces fichiers, du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    logiciel paramètres mon_fichier
    Evidemment pour lancer mon job manuellement aucun problème, mais comment pourrais-je automatiser cela pour que les jobs s'enchainent fichiers après fichiers ? Faut'il avoir recours à awk ?

    Je précise que les paramètres de mon job sont fixent, seul le fichier d'entré est voué à changer.

    EDIT: loupé je suis pas dans le bon sous forum désolé
    Merci à vous

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 589
    Points : 19 474
    Points
    19 474
    Par défaut
    Bonjour,

    une boucle for sur le répertoire qui contient les fichiers :
    Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    shopt -s nullglob
    for f in ./*
    do echo "à remplacer par la commande et ses options $f"
    done
    il est possible de sélectionner les fichiers en fonction d'un ou plusieurs motif.

    le shopt -s nullglob positionne l'option nullglob sur 'on', afin que si il n'y a pas de dossier la boucle n'affiche pas './*' littéralement.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 96
    Points : 72
    Points
    72
    Par défaut
    Merci pour votre réponse je vais essayer d'appliquer ça !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 96
    Points : 72
    Points
    72
    Par défaut
    Je reviens vers vous après de nombreuses tentatives, je me suis d'abord renseigner sur shopt et nullglob pour comprendre de quoi il s'agissait, j'ai ensuite testé votre code comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    shopt -s nullglob
    for f in ./* SEQS
    do echo "dialign2-2 -n $f"
    done
    Je n'ai pas changé quoi que se soit en fait

    Le résultat dans le terminal à l'air correct, la commande a été effectué pour l'ensemble de mes fichiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    dialign2-2 -n ./Seq1.fa
    dialign2-2 -n ./Seq2.fa
    dialign2-2 -n ./Seq3.fa
    dialign2-2 -n SEQS
    Cependant cette commande devrait générée un fichier d'output (à fois qu'un fichier lui est donné en entrée), et ce n'est pas le cas, ici je n'obtiens rien, alors que manuellement chacune des lignes générées par le script me donne bien un résultat.

    J'aurai voulu savoir cela était normal (et donc impossible) ou si je m'y prenais mal.

    Merci à vous

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 589
    Points : 19 474
    Points
    19 474
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    shopt -s nullglob
    for f in ./* SEQS
    do dialign2-2 -n "$f"
    done
    le echo n'était là que pour montrer ce qui pouvait être fait, mais il n'exécute pas la commande.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 96
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    shopt -s nullglob
    for f in ./* SEQS
    do dialign2-2 -n "$f"
    done
    le echo n'était là que pour montrer ce qui pouvait être fait, mais il n'exécute pas la commande.
    Oula shame on me... on mettra ca sur le compte de la fatigue

    Merci beaucoup pour votre aide

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

Discussions similaires

  1. question automatisation des jobs
    Par sulfurex dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 09/02/2011, 16h26
  2. automatisation des tests avec fitnesse
    Par firasDev dans le forum Outils
    Réponses: 4
    Dernier message: 25/10/2009, 21h55
  3. automatisation des transformation avec kettle
    Par said.bolba dans le forum kettle/PDI
    Réponses: 7
    Dernier message: 22/05/2008, 13h20
  4. Planifier Des Jobs Avec Toad
    Par filton dans le forum Toad
    Réponses: 2
    Dernier message: 18/12/2006, 12h24
  5. Problème "Rechercher des patrons" avec Korn Shell
    Par dongnold dans le forum Linux
    Réponses: 2
    Dernier message: 29/07/2006, 15h22

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