In article <b5215baacd93a6e85efc59947f9b8ed9.squir...@host290.hostmonster.com>,
 <m.r...@5-cent.us> wrote:
> Warren Young wrote:
> > On Oct 25, 2017, at 10:02 AM, Mark Haney <mark.ha...@neonova.net> wrote:
> >>
> >> I have a file with two columns 'email' and 'total' like this:
> >>
> >> m...@example.com 20
> >> m...@example.com 40
> >> y...@domain.com 100
> >> y...@domain.com 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

Cheers
Tony
-- 
Tony Mountifield
Work: t...@softins.co.uk - http://www.softins.co.uk
Play: t...@mountifield.org - http://tony.mountifield.org
_______________________________________________
CentOS mailing list
CentOS@centos.org
https://lists.centos.org/mailman/listinfo/centos

Reply via email to