linux中有没有允许多行正则表达式的工具?

linux中有没有允许多行正则表达式的工具?

我想在linux中找到多行正则表达式的结果。我尝试过 grep,但像大多数 Linux 实用程序一样,它是基于行的。

是否有类似的东西可以让我跨多行搜索并简单地输出匹配项?

不是 perl、awk 等,除非我可以直接给它一个正则表达式。

问题

我已经在我的 subversion 存储库上完成了 svn propget --recursive ,现在想要提取所有主干条目,这需要 ^http[^ ] 形式的正则表达式树干。$$(它从行开头的“http”开始,并以空行结束。

答案1

我不知道您要解析的确切格式。如果http始终位于段落的开头(其中段落由一个或多个空行分隔),则可以在段落模式下调用 awk(每个段落是一条记录)并打印以 开头的记录http。 Perl 有类似的模式。

awk -vRS= '/^http[^ ]/'
perl -000 -ne 'print if /^http[^ ]/'

如果前面并不总是有空行http,则可以在看到http空行并停止时开始打印。例如:

awk '/^http[^ ]/, /^$/'
perl -ne 'print if /^http[^ ]/../^$/'

相关内容