我在文本文件中有一组值对,需要在两个不同的数组中读取它们。文件中的值以下列方式存储
100=5
300=10
19=30
我需要在单独的数组中读取100,300,19,在不同的数组中读取5,10和30。到目前为止,我能够读取5,10和30的值,但我如何阅读其他值? 下面是我必须读取指定值的代码。
while read -r line; do declare $line; done <file
答案 0 :(得分:3)
POSIX shell没有指定数组数据类型(标签只提及&#34; shell&#34;),所以你不能在两个不同的数组中读取它们#34;除非你愿意使用支持这种数据类型的shell。
这应该适用于Bash(未经测试):
keys=()
values=()
while IFS='=' read -r key value
do
keys+=("$key")
values+=("$value")
done < key_value_pairs.txt
参考文献: