我在寫一個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有一個新的設施直接點。 –