有没有办法将制表符分隔的值存储到二维数组中

有没有办法将制表符分隔的值存储到二维数组中

我一直在网上寻找解决方案,但无法获得太多信息(大多数多数组示例不是从文本文档创建的),所以就在这里。假设我有一个从文本文档 example.txt 读取值的脚本:

Tag1      Value1
Tag2      Value2
Tag3      Value3

有没有一种方法可以让我以编程方式将标签和值存储到二维数组中,使其看起来像:

arrayResult=[Tag1][Value1]
            [Tag2][Value2]
            [Tag3][Value3];

(请原谅语法)。我希望最好在 bash 而不是 awk 中完成此操作。

答案1

bash 不支持多维数组。您在寻找关联数组吗?

declare -A arrayResult

while IFS=$'\t' read -r key value; do
    arrayResult["$key"]=$value
done < example.txt

for key in "${!arrayResult[@]}"; do
    printf "%s\t%s\n" "$key" "${arrayResult["$key"]}"
done

关联数组需要 bash 版本 4。

相关内容