[AWK] tableau deux dimensions

Résolu
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 ...

2 réponses

  1. Contributeur
    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