Re: besoin d'aide pour bach ou autre

Page principale

Répondre à ce message
Auteur: guilde.nt
Date:  
À: anne.guilde@free.fr
CC: ML Guilde
Sujet: Re: besoin d'aide pour bach ou autre
> fichier de départ : (j'ai un peu simplifié)
>
> nom1;1234
> nom1;5678
> nom2;2345
> nom3;3456
> nom4;4567
> nom4;3456
> nom5;6789
> nom5;5678
> nom6;3456
> nom7;1357
>
> j'aimerais ajouter pour chaque ligne le nombre de fois qu'il y a le numéro
> de la deuxième colonne.
>
> nom1;1234;1
> nom1;5678;2
> nom2;2345;1
> nom3;3456;3
> nom4;4567;1
> nom4;3456;3
> nom5;6789;1
> nom5;5678;2
> nom6;3456;3
> nom7;1357;1


$ awk -F \; '{a[$2][c[$2]++]=$1} END {for (i in c) for (j=0; j<c[i]; j++) print a[i][j] ";" i ";" c[i]}' <data

Le tableau c[] compte les $2 ; le tableau bi-dimensionnel a[][]
enregistre $1. À l'entrée de END, nous avons, avec ces données :

c["3456"] = 3
a["3456"][0] = "nom3"
a["3456"][1] = "nom4"
a["3456"][2] = "nom6"

-Nicolas T.