0
我有一个简单的文本文件“demo.txt”,其中包含:如何从BASH中的文件读取二维数组?
1 2 3
4 5 6
7 8 9
我想用BASH读取该文件,以便在最后,我将有一个二维数组,这将包含在所有的值表如下:
arr[0,0] = 1
arr[0,1] = 2
arr[2,2] = 9
任何想法?
我有一个简单的文本文件“demo.txt”,其中包含:如何从BASH中的文件读取二维数组?
1 2 3
4 5 6
7 8 9
我想用BASH读取该文件,以便在最后,我将有一个二维数组,这将包含在所有的值表如下:
arr[0,0] = 1
arr[0,1] = 2
arr[2,2] = 9
任何想法?
您可以使用关联数组来模拟多维数组:
#!/bin/bash
file="demo.txt"
declare -A arr # declare associative array arr
row=0
while read -r -a line; do
for ((col=0; col<${#line[@]}; col++)); do
arr[$row,$col]="${line[$col]}"
done
((row++))
done < "$file"
echo "${arr[0,0]}"
echo "${arr[0,1]}"
echo "${arr[2,2]}"
输出:
1 2 9
你必须这样做,在bash?当涉及到大型项目时,它(像大多数贝壳一样)相当脆弱。 – 2014-10-31 06:03:06
你*不能有你在bash中提到的那种索引*多维数组(它们并不存在,它们是带有索引技巧的一维数组)。正如@Noufal所说,你最好用不同的语言来做这件事(awk,python,..)。 – 2014-10-31 07:20:21