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

时间:2018-09-10 03:14:44

标签: shell

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

输入:

Blue,20
Blue,10
Black,13
Red,8
Black,10
Red,10
Blue,21

输出:

Blue,51
Black,23
Red,18

感谢您的回答。

1 个答案:

答案 0 :(得分:1)

纯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

看到运行情况-发出所需的输出以供您输入。