所以我要将其输入到关联数组中:
47 SPRINGGREEN2
48 SPRINGGREEN1
49 MEDIUMSPRINGGREEN
50 CYAN2
51 CYAN1
52 DARKRED
53 DEEPPINK4
它是bash脚本的一部分。 我正在寻找一种方法来制作一个关联数组,所以它看起来像
declare -A cols=( [SPRINGGREEN2]="0;47"...[DEEPPINK4]="0;53" )
我可以很容易地手动完成。
但是我想使用for循环来填充数组cols =([KEY] =“vALUE”) For循环将需要47,48,49 ... 53并将其输入VALUE字段, 和SPRINGGREEN2 ... DEEPPINK4进入关键领域。
我在考虑使用awk,但无法想象如何隔离这两个字段并使用每个条目来填充数组。
答案 0 :(得分:4)
您是否打算从文件中读取并填充cols
数组?
declare -a cols
while read num color; do
cols[$num]=$color
done < file.txt
for key in "${!cols[@]}"; do printf "%s\t%s\n" "$key" "${cols[$key]}"; done
哦,另一方面,如果你已经有了关联数组,而且你还想要一个“反转”数组:
declare -a rev_cols
for color in "${!cols[@]}"; do
rev_cols[${cols[$color]#*;}]=$color
done
for key in "${!rev_cols[@]}"; do printf "%s\t%s\n" "$key" "${rev_cols[$key]}"; done