Grep 位于两个已知字符串之间的内容

Grep 位于两个已知字符串之间的内容

我有一个很大的可能压缩的日志文件,我可以识别我感兴趣的某些文本正在使用哪个行号:

find . -name "*" -exec zgrep -C 1 -n -i -H TextToFind {} \;

但在第二个命令中,我想查找包含我感兴趣的行号的两个已知值之间的完整消息。我想要的文本位于打开和关闭的“执行”之间,并且在文件,但我只想返回包含特定行号的打开和关闭执行块。

例如,如果我通过包含多个文本串的大型文档搜索 Wiggam,我只想查看包含要匹配的文本的执行内容。

示例输入是以下一堆与任何地方的搜索字符串都不匹配的内容,示例输出将是:

花了(937)毫秒,成功(真),有效负载[请求目标名字拉尔夫姓氏Wiggam 00000000-0000-0000-0000-000000000000联系人78542154-5541-741f-7474-987654321654创建设置假真32423421-4341- 654f-34834983489734987 执行多个]

花了(937)毫秒,成功(真),有效负载[请求目标名字拉尔夫姓氏威加姆

                                </b:Attributes>
                                <b:EntityState i:nil="true"/>
                                <b:FormattedValues/>
                                <b:Id>00000000-0000-0000-0000-000000000000</b:Id>
                                <b:KeyAttributes xmlns:d="http://schemas.microsoft.com/xrm/7.1/Contracts"/>
                                <b:LogicalName>contact</b:LogicalName>
                                <b:RelatedEntities/>
                                <b:RowVersion i:nil="true"/>
                            </c:value>
                        </b:KeyValuePairOfstringanyType>
                    </b:Parameters>
                    <RequestId xmlns="http://schemas.microsoft.com/xrm/2011/Contracts">98765431-1473-4742-874e-564875211265</RequestId>
                    <b:RequestName>Create</b:RequestName>
                </d:OrganizationRequest>
            </c:value>
        </b:KeyValuePairOfstringanyType>
        <b:KeyValuePairOfstringanyType>
            <c:key>Settings</c:key>
            <c:value i:type="d:ExecuteMultipleSettings">
                <d:ContinueOnError>false</d:ContinueOnError>
                <d:ReturnResponses>true</d:ReturnResponses>
            </c:value>
        </b:KeyValuePairOfstringanyType>
    </b:Parameters>
    <RequestId xmlns="http://schemas.microsoft.com/xrm/2011/Contracts">78797845-4543-7841-78454315487464545</RequestId>
    <b:RequestName>ExecuteMultiple</b:RequestName>
</request>

]

我怎样才能做到这一点?

相关内容