linux的标准键值,Linux读取键值对类型文件,分组求每个key的sum(value)

原文链接

需求如下:

有一个文件,格式如下

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实现

#!bin/bash

declare -A mapcount=()

while read line

do

key=`echo $line|cut -d ' ' -f 1`

value=`echo $line|cut -d ' ' -f 2`

#echo $key$value

keys=`echo ${!mapcount[@]}`

#echo $keys

if [[ $keys =~ $key ]]; then

#echo $key${mapcount[$key]}

countvalue=0

countvalue=$[mapcount[$key]+value]

#echo $countvalue

#echo "覆盖原值:"

mapcount["$key"]="$countvalue"

else

#echo "新值增加:"

mapcount["$key"]="$value"

fi

done < map.txt

for g in ${!mapcount[@]}

do

echo $g"|"${mapcount[$g]}

done

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值