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 le nombre d'occurrences


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 17
    Par défaut Compter le nombre d'occurrences
    Bonjour,

    J'ai un fichier avec le format suivant :

    toto champ1 champ2 champ3
    toto champ1 champ2
    toto champ1 champ2 champ3 champ4

    Je veux compter le nbre d'occurences de chaque champ

    avec un awk ?

    merci

  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,

    oui, s'il y a des champs, c'est avec awk.
    on peut le faire en shell, mais ce sera plus rapide sur de très nombreuses lignes en awk.

    compter le nbre d'occurences de chaque champ
    ça signifie quoi pour toi ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 17
    Par défaut
    oui je n'ai pas été assez explicite

    le résultat attendu serait de la forme

    toto;champ1;3 fois
    toto;champ2;3 fois
    toto;champ3;2 fois
    toto;champ4;1 fois

  4. #4
    Membre émérite Avatar de balkany
    Homme Profil pro
    Touriste
    Inscrit en
    Juillet 2017
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Touriste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 348
    Par défaut
    Voici une possibilité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '/^toto/{for(i=2;i<=NF;i++){a[$i]+=1}} END{for(champ in a){print "toto;" champ ";" a[champ] " fois"}}' fichier
    J'ai rajouté un test sur le fait que la ligne du fichier commence par toto, ce qui est inutile au vu du fichier de test, mais sinon je ne vois pas à quoi servirait ce toto…

  5. #5
    Membre averti
    Femme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 17
    Par défaut
    Super merci, cela fonctionne

    Et si à la place de toto, il s'agissait d'une variable, comment l'indiquer à awk ?

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -vlavariabledemoncoeur=toto '($1==lavariabledemoncoeur){ ... }'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ awk -vlavariabledemoncoeur=toto '($1==lavariabledemoncoeur){for(i=2;i<=NF;i++){a[$i]+=1}} END{for(champ in a){print lavariabledemoncoeur";" champ ";" a[champ] " fois"}}' fichier
    toto;champ1;3 fois
    toto;champ2;3 fois
    toto;champ3;2 fois
    toto;champ4;1 fois

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/04/2008, 16h19
  2. Compter le nombre d'occurrences
    Par RKU01 dans le forum Langage
    Réponses: 1
    Dernier message: 22/03/2008, 17h22
  3. Réponses: 5
    Dernier message: 17/02/2008, 12h32
  4. Réponses: 2
    Dernier message: 06/05/2007, 23h43
  5. [débutant] Compter le nombre d'occurrence d'un texte
    Par PoichOU dans le forum Langage
    Réponses: 2
    Dernier message: 14/10/2006, 00h00

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