gpt4 book ai didi

linux - 与 BC 合作

转载 作者:太空宇宙 更新时间:2023-11-04 04:49:34 27 4
gpt4 key购买 nike

尝试使用 bc 对数组中的元素求和,我有一个包含名称和其值的文件,如果名称出现 3 次,我应该将其值乘以 3,然后找到所有元素的总和,我看到标准输入错误

$ cat foo.txt

max 2.3
henry 3
fransis 4.5
max 2.3
henry 3
max 2.3

它应该显示在终端上

max 6.9
henry 6
fransis 4.5

然后

total 17.9
declare -A array

while read name value; do

array[$name]=$( echo "${array[$name]:-0} + $value" | bc )

done < cat foo.txt

for name in "${!array[@]}"; do

echo "$name ${array[$name]}"

done

最佳答案

我不确定您是否需要使用 bc,但这可以通过以下 awk 命令来完成:

awk '{names[$1]=$1;vals[$1]+=$2} END {for(i in names){sum+=vals[i];print i, vals[i]}; print "total " sum}' foo.txt

关于linux - 与 BC 合作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8418467/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com