Shell脚本从txt文件中读取值对

时间:2014-11-20 13:42:24

标签: arrays shell

我在文本文件中有一组值对,需要在两个不同的数组中读取它们。文件中的值以下列方式存储

100=5
300=10
19=30

我需要在单独的数组中读取100,300,19,在不同的数组中读取5,10和30。到目前为止,我能够读取5,10和30的值,但我如何阅读其他值? 下面是我必须读取指定值的代码。

while read -r line; do declare  $line; done <file

1 个答案:

答案 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

参考文献: