タブで区切られた値を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が必要です。

おすすめ記事