我有一个名为country.txt的文件
cat countries.txt
Germany:berlin
Japan:tokyo
usa:washington
canada:ottawa
uk:london
file='countries.txt'
readarray -t countries < "$file"
for i in "${!countries[@]}"
do
echo "key : $i"
echo "value: ${filenames[$i]}"
done
key : 0
value: Germany:berlin
key : 1
value: Japan:tokyo
key : 2
value: usa:washington
key : 3
value: canada:ottawa
key : 4
value: uk:london
我的bash版本是4.1.2
我期望看到的输出是国家(国家)和价值(它们的首都)的关键
在下面的Inian帮助下并使用IFS =:我得到了一些奇怪的答案
declare -A countries
file='countries.txt'
while IFS=: read -r key value; do
countries["$key"]="$value"
done < "$file"
for cap in "${!countries[@]}"; do
echo "$cap" "${countries[$cap]}"
done
Japan:tokyo
uk london
usa:washington
canada:ottawa
Germany berlin
canada ottawa
Germany:berlin
0 countries.txt
uk:london
usa washington
Japan tokyo