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 - Problème test AND


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 155
    Par défaut AWK - Problème test AND
    Bonjour;

    Voici une procedure Shell :
    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
     
    # UpcaseColumnString(fic_entree, col :number)
    # On met en majuscule la valeur des champs de la colonne col placée en parametre
    # Les champs sont seulement des strings
    #Champs 2 Nom , 9 Domaine, 11 à 20 Resp Gestionnaire
    #
    UpcaseColumnString()
    {
            awk -v col="$2" -F ';' '
                    NF>0 {
                            if ( $col==8 && match($col,/^$/) )
                            {
                                    gsub(//,"PDF",$col); print $0
                            }
                            if ( match($col,/^.*$/) )
                            {
                                    $col=toupper($col);
                                    gsub(/ /,";",$0); print $0
                            }
                    }' $1
    }
    #
    Mais le fait est que; le champ 8 s'il est vide ne prend pas la valeur "PDF" !
    Ou est mon erreur ?

    Merci de votre aide et savoir

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Moostiq Voir le message
    Bonjour;

    Voici une procedure Shell :
    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
     
    # UpcaseColumnString(fic_entree, col :number)
    # On met en majuscule la valeur des champs de la colonne col placée en parametre
    # Les champs sont seulement des strings
    #Champs 2 Nom , 9 Domaine, 11 à 20 Resp Gestionnaire
    #
    UpcaseColumnString()
    {
            awk -v col="$2" -F ';' '
                    NF>0 {
                            if ( $col==8 && match($col,/^$/) )
                            {
                                    gsub(//,"PDF",$col); print $0
                            }
                            if ( match($col,/^.*$/) )
                            {
                                    $col=toupper($col);
                                    gsub(/ /,";",$0); print $0
                            }
                    }' $1
    }
    #
    Mais le fait est que; le champ 8 s'il est vide ne prend pas la valeur "PDF" !
    Ou est mon erreur ?
    Salut

    Ton erreur est que dans awk, une variable ne se préfixe pas de "$". $x indique le champ n° x. Donc si la variable "col" vaut 8, alors $col référence le champ n° 8. Et quand tu compares $col avec 8, ça veut dire que tu vérifies si le champ n° 8 vaut 8...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 155
    Par défaut
    ... Mea Culpa Est.

    Merci Sve@r ! Je m'en suis rendu compte ce matin...
    $X = numero de colonne
    X = valeur de la variable

    Merci beaucoup

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

Discussions similaires

  1. MySQL : SELECT multitable avec problème de AND
    Par superyan dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/02/2007, 16h16
  2. [EJB3] Problème test JUNIT sur JBoss
    Par Thane dans le forum Java EE
    Réponses: 2
    Dernier message: 14/02/2007, 15h11
  3. Problème test d'installation PHP
    Par loranld dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 05/02/2007, 15h34
  4. Problèmes Test sur des dates
    Par guigui11 dans le forum ASP
    Réponses: 1
    Dernier message: 11/12/2006, 16h18
  5. [Tableaux] Problème test script
    Par masseur dans le forum Langage
    Réponses: 6
    Dernier message: 03/12/2005, 18h48

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