A voir également:
- Awk compter le nombre d'occurence
- [AWK] nombre d'occurrences d'un mot - Forum - Shell
- Google sheet compter le nombre d'occurence ✓ - Forum - Excel
- Vba compter le nombre d'occurence dans une colonne - Forum - VB / VBA
- Excel compter le nombre d'occurence avec condition - Forum - Bureautique
- Compter le nombre d'occurence unique en fonction d'un critère ✓ - Forum - Excel
3 réponses
jisisv
25 sept. 2008 à 15:44
- Messages postés
- 3645
- Date d'inscription
- dimanche 18 mars 2001
- Statut
- Modérateur
- Dernière intervention
- 15 janvier 2017
25 sept. 2008 à 15:44
Ceci devrait faire l'affaire:
johand@osiris:~/src/awk$ cat data.txt Thomas Thomas Thomas Bernard Bernard Bernard Marie Marie Marie Marie Marie Thomas Joel Joel johand@osiris:~/src/awk$ cat count.awk { frequencies[$1]++; } END { for (name in frequencies) printf "%s\t%d\n" , name ,frequencies[name]; } johand@osiris:~/src/awk$ awk -f count.awk < data.txt Thomas 4 Bernard 3 Joel 2 Marie 5
function affichage1 (nom, occurence) { print nom, occurence } function affichage2 (nom, occurence) { for (i = 0 ; i < occurence; i++) print nom, "=", occurence } NR == 1 {store = $1; occurence=1;} # initialisation NR != 1 { if ( store == $1) occurence++; else { affichage2(store, occurence) # changer suivant affichage voulu store = $1; occurence=1; } } END { affichage2(store, occurence);} # changer ici aussi!
jisisv
25 sept. 2008 à 16:15
- Messages postés
- 3645
- Date d'inscription
- dimanche 18 mars 2001
- Statut
- Modérateur
- Dernière intervention
- 15 janvier 2017
25 sept. 2008 à 16:15
Et pour le second affichage
johand@osiris:~/src/awk$ cat count.awk BEGIN{ cnt=0; } { if (frequencies[$1] == 0 ) { names[cnt++] = $1; } frequencies[$1]++; } END { for (name in frequencies) { printf "%s\t%d\n" , name ,frequencies[name]; } print "--------------AFFICHAGE 2------------------"; for (i=0; i < cnt; i++) { for (j=1; j <= frequencies[names[i]]; j++) { printf "%s %d\n" , names[i], frequencies[names[i]]; } } }
25 sept. 2008 à 17:00
C'est pas bon ;-((
C'est le nombre d'occurrences consécutives qu'il veut, pas le total, ce fut trop simple autrement ;-))