Tony Mountifield wrote: > In article > <b5215baacd93a6e85efc59947f9b8ed9.squirrel@xxxxxxxxxxxxxxxxxxxxxxx>, > <m.roth@xxxxxxxxx> wrote: >> Warren Young wrote: >> > On Oct 25, 2017, at 10:02 AM, Mark Haney <mark.haney@xxxxxxxxxxx> >> wrote: >> >> >> >> I have a file with two columns 'email' and 'total' like this: >> >> >> >> me@xxxxxxxxxxx 20 >> >> me@xxxxxxxxxxx 40 >> >> you@xxxxxxxxxx 100 >> >> you@xxxxxxxxxx 30 >> >> >> >> I need to get the total number of messages for each email address. >> > >> > This screams out for associative arrays. (Also called hashes, >> > dictionaries, maps, etc.) >> > >> > That does limit you to CentOS 7+, or maybe 6+, as I recall. CentOS 5 >> is >> > definitely out, as that ships Bash 3, which lacks this feature. >> <snip> >> Associative arrays? >> >> Awk! Awk! (No, I am not a seagull...) >> >> sort file | awk '{ array[$1] += $2;} END { for (i in array) { print i >> "\t" >> array[i];}' > > Why the sort? It doesn't matter in what order the lines are read. > Wouldn't this give you the same? > > awk '{ array[$1] += $2;} END { for (i in array) { print i "\t" > array[i];}}' <file > You're right, not really necessary in this case. I was working with a couple of awk scripts here at work, and it was needed in the middle.... mark _______________________________________________ CentOS mailing list CentOS@xxxxxxxxxx https://lists.centos.org/mailman/listinfo/centos