来自字符串的bash数组,仅保留定界符之间的内容

时间:2019-05-21 03:18:51

标签: arrays bash mediawiki

我正在尝试创建一个bash脚本,该脚本使用通过curl从Wikipedia提取的信息来帮助分类我的音乐收藏。我已经知道它可以可靠地返回我想要的信息,但是由于Wikipedia的格式,有时会有一些我想丢弃的信息。它的格式也不总是一致的。有时是多行,有时只有一行,但是我想要的信息始终在“ [[”和“]]”之间定界。我只想保留[[和]]之间的文本,而忽略其余部分。到目前为止,我发现的所有解决方案都使用sed并依赖一致的格式。基本上我想做的是将一个长字符串格式化:

{{[[abcd]]efgh[[hijk]]lmno
[[pqrs]]
[[tuvw]]yz}}

并使用值创建一个数组

abcd
hijk
pqrs
tuvw

1 个答案:

答案 0 :(得分:0)

使用GNU grep和与Perl兼容的正则表达式(PCRE):

grep -Po '(?<=\[\[).*?(?=]])' file

输出:

abcd
hijk
pqrs
tuvw