Bash键值对

时间:2017-09-09 19:02:38

标签: bash csv hash

我正在做一个bash脚本,它读取类似于:

的csv文件
Name, Surname, Course
X,    Y,       Maths,
A,    B,       Science,
C,    D,       Maths,
E,    F,       Science,
G,    H,       Science,

我试图实现类似的东西:

declare -a newmap
newmap[name]="${myarray[0]}"
newmap[course]="${myarray[3]}"

echo "Name ${newmap[name]}"
echo "Course ${newmap[course]}" 

但我不确定如何在阅读文件时使用它。

谢谢

1 个答案:

答案 0 :(得分:0)

如果您想要的只是打印到控制台,请尝试使用以下内容 -

while read -r line;
do 
    IFS=',' read -ra myarray <<< $line

    [ "${myarray[0]}" == "Name" ] && continue

    echo "Name ${myarray[0]}"
    echo "Course ${myarray[2]}"
done < "${1:-/dev/stdin}"

这将从您的输入文件中读取(从此处使用的控制台更改)。然后,它会按,标记每一行以获取字段。