我正在尝试获取文件并将文件中的项目存储到 bash 中的关联数组中。关联数组可能不是我行动的最佳方案,但从我的研究来看,它似乎很合适。我有一个如下所示的文件:
personid
phone
phone
phone
personid
phone
phone
phone
请注意,persionid 始终为 20 位,phone 始终为 10。此文件中没有其他内容,也没有空格,每行只有一个。我想将这些映射到一个关联数组,其中我的键是 personid,我的值是电话。
我为这篇文章编写的代码如下:
declare -A person
while read key; do
if [ ${#key} -eq 20 ] ; then
personID="$key"
else
phone="$key"
fi
person=( ["$personID"]="$phone" )
done < myFile.txt
for i in "${!person[@]}"
do
echo "key: $i"
echo "value: ${person[$i]}"
done
它将正确存储和打印一个 personID 作为键和一个电话作为值....但是电话应该有多个值。我在想,当我分配人员时,我一定是做错了,或者放错了位置。但是我已经玩了很长一段时间了,但无法做到正确。以前从未使用过关联数组,所以有点麻烦。在此先感谢您的帮助!