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

Linux Discussion :

Programmation Shell


Sujet :

Linux

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 23
    Points : 8
    Points
    8
    Par défaut Programmation Shell
    SALUT a tous j'ai un petit souci:
    j'ai un fichier du type

    employer Nom = Dupont
    Prenom = rogerland
    email = balab@..
    Adresse
    tel = 06 .....

    Gerant Nom = TINTIN
    Prenom = FI
    email = tinb@..
    Adresse :7 rue de la
    tel


    employer Nom = Minest
    Prenom = avardd
    email = minar@..
    Adresse :25 bd Haussmann 85321 petitVille
    tel = 06 .....



    Alors je precise ce que je veux faire:
    je veux pouvoir tester si tous les employers ont un numero de telephone mais seulement les employers pas les gerants .or dans mon fichier j'ai des enregistrements concernant plusieurs categories de personnes(employers,gerant,..) et les differents enregistrements des personnes ne sont pas tous separes par un caractere speciale il peut y avoir une ligne vide ou deux ou aucune ligne .. mais chaque enregistrement comprends nom,prenom,email,Adresse et tel. certains champs peuvent ne pas etre renseignés
    j'ai pense a AWK mais je n'ai pas de separateur pour les enregistrements alors

  2. #2
    dclink
    Invité(e)
    Par défaut
    perl?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    Non en shell

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    il faudrait en 1er rendre le fichier "coherent" et structuré toujours de la même fàcon :
    tu as des "=" en séparateur suivie de blanc mais pas toujours, chaque en,registrment fini par le numero de tel dans ton exemple
    tu peut par exemple rendre une structure constante de cette façon , ensuite juste un peut d'algo ...:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    cptlig=0
    go=0
    cat fic | tr -s ' ' | tr -s '\n' | while read aa bb cc dd
    do
        if [[ $aa = "employer" ]]
        then
             Nom="$dd"
             (( go=1 ))
             echo "traitement de $Nom ($go)"
        fi
        if [[ $aa = "tel" ]]
        then
           if (( $go == 1 ))
           then
               if [[ $cc = "" ]]
               then
                   echo "$Nom n a pas de telephone"
               fi
               (( go=0 ))
          fi
       fi
    done
    bien sur vite fait sur le pouce, à verifier sur l'ensemble de tes cas de figures, voici le fichier test pour ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    employer Nom = Dupont
    Prenom = rogerland
    email = balab@..
    Adresse
    tel = 06 .....
     
    Gerant Nom = TINTIN
    Prenom = FI
    email = tinb@..
    Adresse :7 rue de la
    tel
     
     
    employer Nom = Durant
    Prenom = rogerland
    email = balab@..
    Adresse
    tel =
     
    employer Nom = Minest
    Prenom = avardd
    email = minar@..
    Adresse :25 bd Haussmann 85321 petitVille
    tel = 06 .....
    Marc
    Slackware for ever ......
    BASH - KSH ( http://marcg.developpez.com/ksh/ )

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

Discussions similaires

  1. Programmation shell sans ncurses
    Par hkrtoufou dans le forum C++
    Réponses: 3
    Dernier message: 04/06/2007, 14h08
  2. Réponses: 3
    Dernier message: 17/05/2007, 16h19
  3. Programme shell pour rechercher un ensemble de lignes dans un fichier
    Par loukili81 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 23/11/2006, 13h27
  4. Programmation Shell avec Red Hat Calcul de moyenne
    Par jcpoulard dans le forum Linux
    Réponses: 3
    Dernier message: 22/02/2006, 22h08
  5. Pourquoi la programmation Shell ?
    Par am.adnane dans le forum Linux
    Réponses: 14
    Dernier message: 21/01/2006, 00h47

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