从文本文件创建和索引数组

时间:2017-03-17 16:49:09

标签: arrays linux bash

我有一个看起来像这样的文本文件:

:SomeWord:::SomeOtherWord:::MaybeAnotherWord::

假设我不知道有多少":"在单词之间,甚至有多少单词之间,但是每个单词都在":#34;之后,我想在Linux终端中获取该文本文件,并将2个本地变量设置为找到的第一个和第二个单词。

我试图从文本文件中创建一个数组然后获取0和1索引,但它并没有像我想的那样工作。

~# myarray=$(cat mytextfile.txt | tr ":" "\n")
~# for line in $myarray ; do echo "[$line]"; done
[SomeWord]
[SomeOtherWord]
[MaybeAnotherWord]
好吧,看起来它有效,但当我尝试通过索引抓取时,我得到了意想不到的结果..

~# echo ${myarray[0]}
SomeWord SomeOtherWord MaybeAnotherWord
~# echo ${myarray[1]}

~#

我不知道我是否错误地分割了文件?

1 个答案:

答案 0 :(得分:2)

您没有创建数组,只是一个普通变量。要创建数组,您必须再次在()周围编写$()

myarray=($(cat mytextfile.txt | tr ":" "\n"))

也可以写成:

myarray=($(tr ":" "\n" < mytextfile.txt))