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 :

Compter les occurrences d'une valeur dans une colonne d'un fichier plat


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 19
    Par défaut Compter les occurrences d'une valeur dans une colonne d'un fichier plat
    Bonjour,

    je chercher à compter le nombres d'occurrences d'une valeur précise dans une colonne précise au sein d'un fichier plat.
    Un exemple parlera eut-être mieux, voici un fichier plat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    A;012,54;AZERTY;00020,00;COUCOU;00000,01
    S;132,41;AZERTY;00000,01;CDGHCY;00020,00
    G;085,23;GSOFZJ;00012,00;COUCOU;00015,99
    A;086,92;FLSKMP;00020,00;HEYYOU;00102,00
    I;347,90;CDFTHN;00000,01;ALONEA;00001,00
    A;408,35;ADTDCP;00005,00;YOUPLA;00000,01
    Je voudrais alors pouvoir compter le nombre de fois où le 4ème champ content la valeur 00000,01. Je ne veux pas que le script compte également le nombre de fois où cette valeur apparaîtra dans d'autre champ.

    J'ai utilisé cette ligne de code qui fonctionne si je m'en sers directement en shell, mais au sein d'un fichier .sh, ça ne me ramène rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -F ';' -v champ="$NumCol" '{if($champ==$Value) {cpt+=1}} END {print cpt}' $chemin/$fichier
    La variable NumCol est affecté à 4
    Value représente la valeur recherchée
    chemin est l'arborescence vers le fichier
    fichier est le nom du fichier


    Merci d'avance

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    Bonjour,

    il faut passer $Value à awk comme tu lui passes $numCol.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 19
    Par défaut
    Merci N_BaH, mais cela ne fonctionne pas mieux

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 19
    Par défaut
    J'ai trouvé le souci, il ne faut pas mettre de '$' devant la variable value.
    La bonne commande est donc la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -F ';' -v champ="$NumCol" -v value="$Valeur" '{if($champ==value) {cpt+=1}} END {print cpt}' $chemin/$fichier

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. quand je selectionne une valeur dans une liste, retourne une autre valeur
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/12/2008, 14h23
  3. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  4. Réponses: 1
    Dernier message: 25/09/2006, 17h15
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

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