有一个问题,需求如下:
有一个文件,格式如下
a 10
b 11
a 11
a 15
b 24
b 10
基本类似于键值对的格式,分隔符是空格,先要对第一列进行分组,并得到对应第二列的value合计
例如:a的value合计为:10+11+15=36;b的value合计为:11+24+10=45,输出:
a 36
b 45
请用linux命令,或者shell实现,谢谢
while read line
do
key=`echo $line|cut -d ' ' -f 1`
value=`echo $line|cut -d ' ' -f 2`
echo $key$value
if [ "$k" == "0" ]; then
map["$key"]="$value"
else
for i in ${!map[@]}
do
echo "遍历数组:"
if [ "$i" == "$key" ]; then
echo $key${map[$key]}
countvalue=$[map[$key]+value]
echo $countvalue
let map["$key"]="$[map[$key]+value]"
else
map["$key"]="$value"
fi
done
fi
let k++
done < map.txt
for key in ${!map[@]}
do
echo $key"|"${map[$key]}
done