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 :

utilisation d'une variable numérique issue de bash comme paramètre dans gawk


Sujet :

Shell et commandes GNU

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut utilisation d'une variable numérique issue de bash comme paramètre dans gawk
    Bonjour,

    Je voudrais utiliser une variable issue de mon script shell dans la commande gawk.
    Mes colonnes 1 et 3 ont des valeurs numériques et je veux en sortie uniquement les lignes dont la valeur de la colonne 1 est inférieure à ma variable lm1 et la valeur de la colonne 3 inférieure à ma variable lm2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     gawk -F"\t" '$1< ${lm1} && $3< ${lm2} {print $1"\t"$2"\t"$3"\t"$4};' file
    ceci ne marche pas, mes variables lm1 et lm2 ne sont pas reconnues dans la commande awk

    j'ai donc essayé ceci mais ça ne me donne pas non plus ce que je veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     gawk -F"\t" -v "LM1=$lm1" -v "LM2=$lm2" '$1< $LM1 && $3< $LM2 {print $1"\t"$2"\t"$3"\t"$4};' file
    j'ai ensuite essayé plusieurs solutions trouvées sur d'autres forums mais rien ne marche.

    Merci aux bonnes âmes qui voudront bien se pencher sur mon problème..

  2. #2
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    J'ai finalement trouvé la bonne syntaxe, je donne donc la solution pour ceux qui en auraient besoin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    gawk -F"\t" -v "LM1=$lm1" -v "LM2=$lm2" '$1< LM1 && $3< LM2 {print $1"\t"$2"\t"$3"\t"$4};' file

  3. #3
    Membre éclairé Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Points : 823
    Points
    823
    Par défaut
    Bonjour,

    Avec le code nettoyé, cela donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -v lm1=$lm1 -v lm2=$lm2 'BEGIN {FS=OFS="\t"} $1 < lm1 && $3 < lm2 {print $1, $2, $3, $4}' file

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/12/2009, 14h34
  2. Pl/SQL utilisation d'une variable dans un select
    Par larg dans le forum PL/SQL
    Réponses: 17
    Dernier message: 30/11/2004, 17h08
  3. utilisation d'une variable globale
    Par ZZ dans le forum ASP
    Réponses: 3
    Dernier message: 03/12/2003, 19h11
  4. Utilisation d'une variable sur plusieurs unités
    Par Yamaneko dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2003, 11h23
  5. Réponses: 4
    Dernier message: 05/06/2002, 14h35

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