gpt4 book ai didi

linux - 计算数组 bash 中的出现次数

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:15:15 24 4
gpt4 key购买 nike

我正在尝试使用关联数组计算数组中出现的次数

 #!/bin/bash

arr=@{}
arr2=(A B B C D A B)

for i in "${arr2[@]}"; do #Run trough array

if [[ -v arr[$i] ]]; #Check if key exists at associative array
then
arr[$i]=arr[$i]+1 #Increment value
else
arr+=([$i]=1) #Create key/value pair
fi

done

for i in ${!arr[*]} #Run trough associative array
do
echo $i ${arr[*]}
done

我得到输出:0 arr[B]+1

最佳答案

您的代码在更多地方是错误的。这是正确的:

#!/bin/bash

declare -A arr
arr2=(A B B C D A B)

for i in "${arr2[@]}"; do #Run trough array

if [[ -v arr[$i] ]]; #Check if key exists at associative array
then
arr[$i]=$((${arr[$i]}+1)) #Increment value
else
arr[$i]=1 #Create key/value pair
fi
done

for i in ${!arr[@]} #Run trough associative array
do
echo $i ${arr[$i]}
done

输出是:

A 2
B 3
C 1
D 1

关于linux - 计算数组 bash 中的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53134546/

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