我有一个二维数组,由第一维中的字母和第二维中的数字组成。例如
a,1
b,3
c,9
d,8
我想要做的是搜索数组中的字符并返回相应的数字。例如,如果$ var ='c'则返回值为9.
由于不熟悉Unix阵列,我想知道是否有人知道如何做到这一点?
谢谢:)
答案 0 :(得分:0)
这是我提出的
arr1=(a b c d)
arr2=(1 3 9 8)
for ((index=0; index<${#arr1[@]}; index++)); do
if [ "${arr1[$index]}" = "$myCharacter" ]; then
echo $arr2[$index]
return
fi
done
echo 'Character not found'
不确定是否有更短的方法可以做到这一点,但工作正常......
答案 1 :(得分:0)
假设您有一个名为array.txt
的文件,其中包含您在问题中显示的输入,
$ var=c
$ awk -v key="$var" -F, '$1 ~ key {print $2; found=1} END { if (! found) { print "Key "key" not found";}}' array.txt
9
$ var=z
$ awk -v key="$var" -F, '$1 ~ key {print $2; found=1} END { if (! found) { print "Key "key" not found";}}' array.txt
Key z not found
答案 2 :(得分:0)
您可以使用bash准备关联数组并使用以下字符查找值:
declare -A ARR
ARR=( [a]=1 [b]=3 [c]=9 [d]=8 )
echo ${ARR[c]}