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 :

[awk] Commande unix dans une variable


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Points : 99
    Points
    99
    Par défaut [awk] Commande unix dans une variable
    bonjour ,

    j'aimerai stocker le résultat d'une commande unix dans une variable awk (je me répète dsl) le problème c'est que je ne vois pas comment faire ? surtout que je ne sais pas mm les gérer les guillemets et les entrecôtes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    awk -F\; '{if ($1~/^GROUPE/){groupe=substr($1,9);print "echo "'$groupe'"|commande unix"";"$2}else{print $0}}'
    merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    Je te fais la même réponse que dans ton post
    http://www.developpez.net/forums/d13...emble-fichier/

    Exemple avec la commande shell date:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ awk 'BEGIN{ "date" | getline awkDateVar; print "La date passée à awk est: "awkDateVar}'
    La date passée à awk est: vendredi 2 août 2013, 13:09:59 (UTC+0200)

  3. #3
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    bonjour,

    Citation Envoyé par huître Voir le message
    surtout que je ne sais pas mm les gérer les guillemets et les entrecôtes
    Ben ça dépend comment tu les préfères : bleues, saignantes, à point ou bien cuites


  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Points : 99
    Points
    99
    Par défaut
    Je te fais la même réponse que dans ton post
    http://www.developpez.net/forums/d13...emble-fichier/
    oui effectivement je te remercie


    Ben ça dépend comment tu les préfères : bleues, saignantes, à point ou bien cuites

    mon ventre parle souvent à ma place dsl

  5. #5
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 271
    Points : 13 536
    Points
    13 536
    Par défaut
    Bonjour

    La réponse à la question brute serait d'exécuter la commande à l'extérieur, la mettre dans une variable et utiliser l'option '-v' de awk.



    Mais imaginons un cas où ton programme externe nécessite les champs $3 $5 et $8 de chaque enregistrement, tout en renvoyant une ligne. Dans awk, je ferais ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    awk '{
     
     
    cmd="./mycommand.bin "$3" "$5" "$8" eventuallastparam"
    cmd | getline resultat
    close(cmd)
     
     
    }
    'resultat' contiendrait alors la ligne renvoyée.

Discussions similaires

  1. Réponses: 9
    Dernier message: 14/12/2010, 12h18
  2. Réponses: 2
    Dernier message: 07/09/2010, 14h15
  3. Réponses: 6
    Dernier message: 23/07/2007, 21h56
  4. Résultat d'une commande DOS dans une variable
    Par tomix81 dans le forum Général Python
    Réponses: 2
    Dernier message: 18/05/2007, 11h02
  5. Réponses: 22
    Dernier message: 09/12/2005, 21h27

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