【问题标题】:How to create n variables in BASH?如何在 BASH 中创建 n 个变量?
【发布时间】:2014-04-14 09:05:08
【问题描述】:

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

【问题讨论】:

  • 听起来你需要的是一个数组。在 bash 文档中查找标题为“数组”的部分。
  • 考虑用一个小测试用例扩展您的问题,包括预期的输入类型(每个 1-2 行)和预期的输出。否则我们真的必须和你一起玩 20 个问题,这只是受虐狂的乐趣;-)。祝你好运。
  • 要回答您的问题,您可以使用myarray=({1..10}) 创建一个包含 10 个元素的数组。不幸的是,这无助于以任何方式读取 CSV 文件。如果这是你想要的,你应该搜索或询问。

标签: arrays linux bash variables csv


【解决方案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 有任何了解,那它可能是一个不错的选择。

【讨论】:

    猜你喜欢
    • 2017-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    • 2022-01-18
    • 2013-02-06
    相关资源
    最近更新 更多