On Wed, 2017-10-25 at 12:02 -0400, Mark Haney wrote:
> I know this is for CentOS stuff, but I'm at a loss on how to build a 
> script that does what I need it to do.  It's probably really logically 
> simple, I'm just not seeing it.  Hopefully someone will take pity on me 
> and at least give me a big hint.
> 
> 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 
> type of code has always been the hardest for me for whatever reason, and 
> honestly, I don't write many scripts these days. I'm struggling to get 
> psuedocode that works, much less a working script. I know this is off 
> topic, and if it gets modded out, that's fine.  I just can't wrap my 
> brain around it.
> 
Not bash but perl:

#####
#!/usr/bin/perl
my %dd;
while (<>) {
my @f=split;
$dd{$f[0]}{COUNT}+=$f[1];
}
print "\nSums:\n";
for (keys %dd) { print "$_\t $dd{$_}{COUNT}\n"; };
####

It takes the data on stdin, sums it into an associative array and
prints out the result

Results:
######
$ ./ppp
m...@example.com 20
m...@example.com 40
y...@domain.com 100
y...@domain.com 30

Sums:
y...@domain.com  130
m...@example.com         60
######

I'm sure some perl monk can come up with a single line command to do
the same thing.

P.

_______________________________________________
CentOS mailing list
CentOS@centos.org
https://lists.centos.org/mailman/listinfo/centos

Reply via email to