탭으로 구분된 값을 2D 배열로 저장하는 방법이 있나요?

탭으로 구분된 값을 2D 배열로 저장하는 방법이 있나요?

나는 온라인에서 해결책을 찾고 있었지만 많은 정보를 얻을 수 없었습니다(대부분의 다중 배열 예제는 텍스트 문서에서 생성되지 않았습니다). 그래서 여기에 있습니다. 텍스트 문서 example.txt에서 값을 읽는 스크립트가 있다고 가정해 보겠습니다.

Tag1      Value1
Tag2      Value2
Tag3      Value3

다음과 같이 표시되도록 프로그래밍 방식으로 레이블과 값을 2D 배열에 저장하는 방법이 있습니까?

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

(문법이 틀린 점 양해 부탁드립니다.) 나는 이것이 awk보다는 bash에서 가장 잘 수행되기를 바랍니다.

답변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가 필요합니다.

관련 정보