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 :

mettre fichiers en variable


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Par défaut mettre fichiers en variable
    Bonjour à tous !!

    n'étant pas très doué en programmation (je précise d'avance)
    je cherche à mettre un bout de fichier dans une variable afin de touts les controler en automatique.
    Je m'explique par un exemple :

    j'ai 250 Fichiers de ce style ... (seule le numéro change afin de les différencier)
    DEL_CTL_PN_H_01_20080809.dat
    DEL_CTL_PN_H_02_20080809.dat
    DEL_CTL_PN_H_04_20080809.dat
    DEL_CTL_PN_H_05_20080809.dat
    DEL_CTL_PN_H_06_20080809.dat
    DEL_CTL_PN_H_08_20080809.dat
    DEL_CTL_PN_H_10_20080809.dat
    ...
    DEL_CTL_R_PN_H_01_20080809.dat
    DEL_CTL_R_PN_H_02_20080809.dat
    DEL_CTL_R_PN_H_04_20080809.dat
    DEL_CTL_R_PN_H_05_20080809.dat
    DEL_CTL_R_PN_H_06_20080809.dat
    DEL_CTL_R_PN_H_08_20080809.dat
    DEL_CTL_R_PN_H_10_20080809.dat
    ...
    DEL_ORD_PN_H_01_20080809.dat
    DEL_ORD_PN_H_02_20080809.dat
    DEL_ORD_PN_H_04_20080809.dat
    DEL_ORD_PN_H_05_20080809.dat
    DEL_ORD_PN_H_06_20080809.dat
    DEL_ORD_PN_H_08_20080809.dat
    DEL_ORD_PN_H_10_20080809.dat
    ...
    DEL_PE_H_01_20080809.dat
    DEL_PE_H_02_20080809.dat
    DEL_PE_H_04_20080809.dat
    DEL_PE_H_05_20080809.dat
    DEL_PE_H_06_20080809.dat
    DEL_PE_H_08_20080809.dat
    DEL_PE_H_10_20080809.dat
    je souhaiterais extraire la partie commune de chaque liste et les utiliser comme variables pour être sur de ne pas en oublier un.

    Merci de votre aide

  2. #2
    Membre émérite Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Par défaut
    Si j'ai bien compris ton besoin
    http://www.shellunix.com/regexp.html


    Script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var=$(sed "s/_[0-9][0-9]_20080809.dat//" fichier.txt | sort -u)
    for commun in $(echo $var)
    do
        echo $commun
    done
    Résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DEL_CTL_PN_H
    DEL_CTL_R_PN_H
    DEL_ORD_PN_H
    DEL_PE_H
    DEL_PE_H

  3. #3
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Par défaut
    bonjour,

    je reprends apres un moment d'absence ...

    alors euh ... ce n'est pas vraiment ca !!mais si en fait !!
    Mais merci de ta réponse

    ma liste de fichier .dat proviens d'un 'ls'
    ce que tu me ressort est en fait la partie distincte de mon fichier qui me faudrait en variable

    je m'explique sur un exemple précis !

    dans
    DEL_CTL_PN_H_01_20080809.dat
    DEL_CTL_PN_H_02_20080809.dat
    DEL_CTL_PN_H_04_20080809.dat
    DEL_CTL_PN_H_05_20080809.dat
    DEL_CTL_PN_H_06_20080809.dat
    DEL_CTL_PN_H_08_20080809.dat
    DEL_CTL_PN_H_10_20080809.dat

    je souhaite scanner chaque groupe de fichier.dat (en gros je fais une comparaison de ce qu'ils contiennent avec une référence dans ma base).
    cela fonctionne actuellement pour 1 groupe fichier .
    mais je souhaitais optimiser car avec 40 groupe fichiers cela va etre long de relancer le script....

    je souhaite donc pouvoir intégre dans une variable ce qui les différencie c'est à dire = ce que tu ressorts avec ton bout de code

    et pour aller plus loin dans ma liste cela correspondrait à
    DEL_CTL_PN_H_01, DEL_CTL_PN_H_02,DEL_CTL_PN_H_03... = groupe DEL_CTL_PN_H
    DEL_CTL_R_PN_H_01, DEL_CTL_R_PN_H_02, DEL_CTL_R_PN_H_03...= groupe DEL_CTL_R_PN_H
    =>que je met en variable

    donc
    cela consiste à prendre en automatique
    le groupe de DEL_CTL_PN_H (qui ressort de ma variable) se fait scanner, une fois terminé renvoi ma réponse puis passe à DEL_CTL_R_PN_H et ainsi de suite ...

    en espérant avoir été assez clair

  4. #4
    Expert confirmé 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 : 48
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i in DEL_CTL_PN_H DEL_CTL_R_PN_H DEL_ORD_PN_H DEL_PE_H DEL_PE_H ; do ( for j in $i* ; do traitement ; done ) ; done
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i in $(ls -l D* | sed -e "s/_[0-9].*//") ; do ( for j in $i* ; do traitement_sur $j ; done ) ; done

  5. #5
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Par défaut
    Merci je vais essayé ca !!!

Discussions similaires

  1. [bash] Mettre le contenu d'un fichier dans une variable
    Par tipié dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 25/04/2024, 21h27
  2. Réponses: 6
    Dernier message: 24/11/2008, 20h51
  3. Réponses: 2
    Dernier message: 22/06/2008, 15h41
  4. Réponses: 2
    Dernier message: 07/10/2007, 11h36
  5. Réponses: 10
    Dernier message: 10/02/2007, 18h44

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