Although "not my question", thanks, I learned a lot about array processing from your example. ----- Original Message ----- From: "warren" <warren@xxxxxxxxxxx> To: "centos" <centos@xxxxxxxxxx> Sent: Wednesday, October 25, 2017 11:47:12 AM Subject: Re: [OT] Bash help 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. #!/bin/bash declare -A totals while read line do IFS="\t " read -r -a elems <<< "$line" email=${elems[0]} subtotal=${elems[1]} declare -i n=${totals[$email]} n=n+$subtotal totals[$email]=$n done < stats for k in "${!totals[@]}" do printf "%6d %s\n" ${totals[$k]} $k done You’re making things hard on yourself by insisting on Bash, by the way. This solution is better expressed in Perl, Python, Ruby, Lua, JavaScript…probably dozens of languages. _______________________________________________ CentOS mailing list CentOS@xxxxxxxxxx https://lists.centos.org/mailman/listinfo/centos _______________________________________________ CentOS mailing list CentOS@xxxxxxxxxx https://lists.centos.org/mailman/listinfo/centos