我在日志文件中有xml,看起来像:
<ServiceRs>
1
</ServiceRs>
text text text
<ServiceRs>
2
</ServiceRs>
text
因此,我需要从日志文件中剪切此XML,并且尝试使用以下方法:
pcregrep -M '<ServiceRs>(\n|.)*</ServiceRs>'
但是之后,我没有得到两个ServiceRs xml,我得到了:
<ServiceRs>
1
</ServiceRs>
text text text
<ServiceRs>
2
</ServiceRs>
我知道,我可以修改模式-(\n |。)*->(\n |。){0,n),但我真的不知道xml中会有多少行。
最佳答案
你能试一下吗pcregrep -M '<ServiceRs>(\n|.)*?</ServiceRs>'
?
用于延迟匹配
它仅匹配<ServiceRs>
和</ServiceRs>
之间的内容,而排除其余text text...
引用:https://regexr.com/3h1ug
关于linux - 如何只显示pcregrep中的第一场比赛?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46947775/