【发布时间】:2023-03-28 11:53:01
【问题描述】:
我正在尝试在 bash 脚本中进行一些相当简单的字符串解析。 基本上,我有一个由多个 multi-line 字段组成的文件。每个字段都被一个已知的页眉和页脚包围。
我想将每个字段分别提取成一个数组或类似的,像这样
>FILE=`cat file`
>REGEX="@#@#@#[\s\S]+?@#@#@"
>
>if [[$FILE =~ $REGEX ]] then
> echo $BASH_REMATCH
>fi
文件:
@#@#@#################################
this is field one
@#@#@#
@#@#@#################################
this is field two
they can be any number of lines
@#@#@#
现在我很确定问题在于 bash 不匹配换行符和“。”
我可以将它与“pcregrep -M”匹配,但当然整个文件都会匹配。我可以从 pcregrep 一次获得一场比赛吗?
我不反对使用一些内联 perl 或类似的东西。
【问题讨论】: