我正在尝试在bash中创建n个变量...理想情况下是一个包含这些n个变量的数组,这样我以后可以将它们分配给我从csv文件读入的列。我想我只是在混淆自己的语法。非常感谢帮助!
答案 0 :(得分:1)
bash从CSV文件中读取一行并将其放入数组中的最简单方法是:
IFS=, read -r -a ARRAY < filename
开头的IFS=,
告诉read
使用,作为字段分隔符。选项-a ARRAY
告诉read
将结果放在名为ARRAY
的bash数组中(您可以使用任何名称;它不需要是大写的)。
您通常希望在循环中执行此操作,例如:
while IFS=, read -r -a ARRAY; do
# do something with ARRAY
done < filename
这不是一种非常强大的技术,因为它不适用于带引号的字段,尤其不适用于带引号的字段中的嵌入式逗号。大多数语言都有CSV解析库;如果您对Python有任何熟悉,那么它可能是一个不错的选择。