使用shell命令按类别获取总和

使用shell命令按类别获取总和,shell,Shell,我有这个样本数据。我需要找到每种颜色的总数 输入: 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

我有这个样本数据。我需要找到每种颜色的总数

输入:

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
您可以看到它正在运行--为手头的输入发出所需的输出--在

尝试类似这样的“awk'{print$NF}'| awk'{n+=$1};END{print pat n}'”,但不是通过每个类别获得。