[CentOS] [OT] Bash help
Pete Biggs
pete at biggs.org.uk
Wed Oct 25 16:44:01 UTC 2017
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:
>
> me at example.com 20
> me at example.com 40
> you at domain.com 100
> you at 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
me at example.com 20
me at example.com 40
you at domain.com 100
you at domain.com 30
Sums:
you at domain.com 130
me at example.com 60
######
I'm sure some perl monk can come up with a single line command to do
the same thing.
P.
More information about the CentOS
mailing list