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 :

problème avec Awk


Sujet :

Linux

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut problème avec Awk
    Bonjour à tous,

    Voila j ai un petit problème avec un script qui utilise un awk

    Voici un extrait de mon fichier d'entrer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ptsas00,0002,Online,Normal,Normal,2107-900,FB512,P0,Standard,DS,15.0,-,31457280,V0,31457280,legacy 
    oracle00,0003,Online,Normal,Normal,2107-900,FB512,P0,Standard,DS,60.0,-,125829120,V1,125829120,legacy   
    testqual00,0004,Online,Normal,Normal,2107-900,FB512,P0,Standard,DS,12.0,-,25165824,V0,25165824,legacy   
    exploit00,0005,Online,Normal,Normal,2107-900,FB512,P0,Standard,DS,24.0,-,50331648,V4,50331648,legacy
    Donc un fichier bien formater avec comme séparateur une virgule

    En gros jeu veux faire un script qui permette, en lui passant un ou plusieurs paramètres,
    De retourner la deuxième colonne des lignes qui contiennent mon ou mes paramètres dans la 14ème colonne ^^

    ex : Très simple n'est-ce pas ?

    De plus il ne faut pas que la première colonne commence par le mot "single"

    Donc voila mon script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    VOLID='('   
     
    for i in $@    
    do    
     
    VOLID=$VOLID'($14=='\"$i\"')||'   
     
    done    
     
    VOLID=$VOLID'(1==0))'   
     
    cat $FICHIER_IN | awk  -vvolid=$VOLID  -F ',' '( volid && ( $1 !~ /^single*/)) {print $2}'
    Donc mon problème est qu'avec la condition écrit en dur tout fonctionne, quand j'utilisai la variable VOLID qui contient ma condition avec tous les paramètres «($14=="V9")||($14=="V3")||(1==0)»,

    La fonction awk me renvoi toutes les lignes du fichier sans tenir compte de mes paramètres ^^

    J'espère que cela est assez claire

    Cela fait plusieurs jours que je bloque dessus XD.

    Si quelqu'un peu m'aider ce serait sympa.

    Pour info, au final cela doit fonctionner sous AIX

  2. #2
    Futur Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    bon j ai trouver une solution alternative ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    VOLID='('  
    for i in $@   
    do   
    VOLID=$VOLID'($14=='\"$i\"')||'  
    done   
    VOLID=$VOLID'(1==0))'  
    cat $FICHIER_IN | awk -F ',' ' '${VOLID}'&& ($1 !~ /^single/) {print $2}'

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

Discussions similaires

  1. Problème avec AWK
    Par nicnictout dans le forum Shell et commandes GNU
    Réponses: 12
    Dernier message: 01/04/2011, 17h34
  2. Problème avec awk
    Par bstages2000 dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 03/12/2007, 12h58
  3. Problème avec awk et un pipe
    Par Chatbour dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 14/10/2007, 11h40
  4. problème avec la commande awk
    Par salseropom dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 05/06/2007, 13h02
  5. Problème avec awk
    Par Michaël dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 16/08/2006, 13h30

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