从文本文件中读取空格分割单词并将其放入shell中的数组中

时间:2016-06-20 16:51:00

标签: arrays shell

我正在尝试从文件中读取文本,然后将其放入按空格分割的数组中。我一直在尝试在线关注示例,但我的字符串似乎仍然无法正确分割到数组中。

    nameList=$(cat "test.txt")
    echo $nameList
    array=($nameList)
    echo $array
    echo $array[1]

只返回结果

    this is a test
    this
    this[1]

正如您所看到的,只有第一个单词被变量数组捕获。

非常感谢任何建议。

1 个答案:

答案 0 :(得分:0)

只读一行,按空格分割:

read -r -a array <test.txt

...或者直到文件中的第一个NUL或其末尾读取:

read -r -d '' -a array <test.txt

访问该数组的元素:

echo "${array[1]}"

...或更好(即使在cases where the specification for echo is ambiguous中也可以正常运行,例如,如果您的单词是-n或包含反斜杠文字):

printf '%s\n' "${array[1]}"