[AWK] tableau deux dimensions

Résolu/Fermé
François - 21 juin 2012 à 16:38
 François - 21 juin 2012 à 16:59
Bonjour,

J'aurais besoin d'un petit coup de main en awk pour adapter un oneliner en awk qui utilise un tableau pour calculer une fréquence.

Pour faire simple, voici le fichier d'entrée :

:~$ cat people.txt
john	new-york
dean	washington
mary	new-york
karl	texas
mike	california
steve	washington
miky	new-york


la commande et le résultat :
:~$ awk '{ freq[$2]++; };END {for (name in freq) printf "State %s\t%d\n" , name ,freq[name];}' people.txt
State new-york	3
State washington	2
State california	1
State texas	1


Et voici le résultat que j'aimerais :

State new-york	3 john mary miky
State washington	2 dean steve
State california	1 mike
State texas	1 karl


Je pense qu'il faut utiliser un tableau à deux dimensions mais je bute sur la solution ...
A voir également:

2 réponses

dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617
21 juin 2012 à 16:53
hello
essayer
awk '{ freq[$2]++;n[$2]=n[$2] " " $1 };END {for (name in freq) printf "State %s\t%d\t%s\n" , name ,freq[name], n[name]}'  people.txt
0
C'est ça... merci beaucoup !
0