如何只显示 pcregrep 中的第一个匹配项?
How to show only first match in pcregrep?
我在日志文件中有 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),但我真的不知道 [= 中会有多少行21=].
你能试试吗
pcregrep -M '<ServiceRs>(\n|.)*?</ServiceRs>'
?
用于惰性匹配
只匹配<ServiceRs>
和</ServiceRs>
之间的内容,排除其余text text...
我在日志文件中有 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),但我真的不知道 [= 中会有多少行21=].
你能试试吗
pcregrep -M '<ServiceRs>(\n|.)*?</ServiceRs>'
?
用于惰性匹配
只匹配<ServiceRs>
和</ServiceRs>
之间的内容,排除其余text text...