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 :

Aide sur commande awk


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 54
    Points : 46
    Points
    46
    Par défaut Aide sur commande awk
    Bonjour,
    Petit problème quant à l'utilisation de la commande awk.
    J'ai un fichier param.txt qui contient par exemple ces données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    NomParam1
    NomParam3
    NomParam5
    A coté de ce fichier, j'ai un autre fichier de config qui contient les valeurs de tous les paramètres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    NomParam1= ValeurParam1
    NomParam2= ValeurParam2
    NomParam3= vlauerParam3 
    ...
    A l'aide d'un script shell je souhaite obtenir une chaine du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomParam1=ValeurParam1 NomParam3=ValeurParam3 NomParam5=ValeurParam5
    C'est à dire une chaine ne contenant que les paramètres présents dans le fichier param.txt concaténé avec leur valeur définie dans le fichier de config.
    J'ai tenté d'utiliser la commande awk mais sans succès.
    En fait pour chaque param contenu dans le fichier param.txt je vais chercher la valeur dans le fichier config:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    awk '{
     
    cat config.txt |grep $1 |  awk '{printf $2 }' `
     
    }' param.txt
    Je me doute qu'il n'est pas possible d'imbriquer un awk dans un autre .. mais si quelqu'un à une idée pour contourner mon problème ..
    Merci

  2. #2
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    une réponse avec sed / awk

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     awk /$(sed ':a;N;$!ba;s/\n/|/g' parms.txt)/'{ print $0 }' config.txt
    une reponse avec une imbrication de awk ( plus simple je trouve ) mais plus long

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    awk /$(  awk 'NR==1{ PARM=$0} ;  { PARM=PARM "|"$0  } END { print PARM } '  parms.txt)/'{ print $0 }' config.txt

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    Merci beaucoup !

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

Discussions similaires

  1. aide sur commande PS
    Par JEDI1970 dans le forum Shell et commandes POSIX
    Réponses: 3
    Dernier message: 12/10/2012, 18h24
  2. [XL-2003] aide sur commande
    Par redstoff dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/01/2011, 15h59
  3. Aide sur commande Sed
    Par comboDev dans le forum Shell et commandes GNU
    Réponses: 13
    Dernier message: 09/11/2008, 14h20
  4. Aide sur commande ftp
    Par sscouby dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 06/05/2008, 11h29
  5. aide sur commande itoa
    Par azräel dans le forum MFC
    Réponses: 7
    Dernier message: 08/02/2008, 15h55

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