У меня есть образцы данных. Мне нужно найти сумму для каждого цвета.
Вход:
Blue,20
Blue,10
Black,13
Red,8
Black,10
Red,10
Blue,21
Выход:
Blue,51
Black,23
Red,18
Спасибо за Ваш ответ.
В чистом bash:
#!/usr/bin/env bash
declare -A totals=( )
while IFS=, read -r category value; do
(( totals[$category] += value ))
done
for category in "${!totals[@]}"; do
sum=${totals[$category]}
echo "$category,$sum"
done
Вы можете увидеть, как это работает - испускает желаемый результат для входящего под рукой - в https://ideone.com/5Ispzj
попробуйте что-то вроде этого "awk '{print $ NF}' | awk '{n + = $ 1}; END {print pat n}'", но не попадаете по каждой категории.