将字符串解析为二维数组

时间:2015-01-28 13:21:05

标签: arrays string bash shell

请帮帮我。 我有这样的字符串(所有时间都在变化,而不是不变):

id1 name1 key1
id2 name2 key2
id3 name3 key3
...

如何使用bash我可以将这个值放到二维数组中?

结果例如:

array[1][1] -> id1
array[1][2] -> name1
array[1][3] -> key1
array[2][1] -> id2
array[2][2] -> name2
...

TY的帮助

1 个答案:

答案 0 :(得分:1)

Bash不支持多维数组 您可以使用哈希模拟它们,但需要关注前导零和许多其他事情。

例如:

var="id1 name1 key1"

declare -A matrix
num_rows=1
num_columns=3

read -a array <<< ${var}

matrix[1,1]=${array[0]}
matrix[1,2]=${array[1]}
matrix[1,3]=${array[2]}


for ((j=1;j<=num_columns;j++)) do
    for ((i=1;i<=num_rows;i++)) do
        echo ${matrix[$i,$j]}
    done    
done