How to add values of duplicate keys in associative arrays, using Shell Script? -
i'm having trouble removing duplicate keys lower value.
i've used while loop loop through file while read key value.
the original text file looks this:
meson 6 electron 5 meson 12 neutron 10 proton 5 hadron 7 neutron 10 proton 2 proton 8 this output far using associative arrays in shell:
electron 5 hadron 7 meson 18 meson 6 neutron 10 neutron 20 proton 15 proton 5 proton 7 i summed values of same keys want remove key lower value.
my desired output this:
electron 5 hadron 7 meson 18 neutron 20 proton 15 is there way of returning higher value , finishing off script sort?
using bash version 4 -- sh not have associative arrays
declare -a sum while read key value; ((sum[$key] += value)); done <file key in "${!sum[@]}"; echo $key ${sum[$key]}; done proton 15 neutron 20 hadron 7 electron 5 meson 18 associative array keys have no natural ordering. can pipe loop sort or sort -k2n if wish.
Comments
Post a Comment