我在写一个bash脚本来分析一些文件。在第一次迭代中,我为每个分析的类别创建了包含字数的关联数组。这些类别事先不知道,因此这些关联数组的名称是可变的,但都使用相同的前缀count_$category
。关联数组有一个单词作为关键字,其出现次数在该类别中作为值计数。Bash:遍历变量名称
在对所有文件进行分析后,我必须总结每个类别的结果。我可以使用${count_*}
迭代变量名称,但是如何访问这些变量名称后面的关联数组?对于每个关联数组(每个count_*
变量),我应该遍历单词和它们的计数。
我已经尝试过像这样的间接访问,但它不工作:
for categorycount in ${count_*} # categorycount now holds the name of the associative array variable for each category
do
array=${!categorycount}
for word in ${!array[@]}
do
echo "$word occurred ${array[$word]} times"
done
done
你可以发布[mcve]吗?例如,[编辑]您的代码来填充2个关联数组并向我们展示您的期望。 –
解决:我终于找到了一个SO问题回答这个问题 http://stackoverflow.com/a/13306800/5324593 – OKamers
bash的哪个版本? 4.3有一个新的设施直接点。 –