如何在BASH中创建n个变量?

时间:2014-03-11 00:28:02

标签: arrays linux bash variables csv

我正在尝试在bash中创建n个变量...理想情况下是一个包​​含这些n个变量的数组,这样我以后可以将它们分配给我从csv文件读入的列。我想我只是在混淆自己的语法。非常感谢帮助!

1 个答案:

答案 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有任何熟悉,那么它可能是一个不错的选择。