
圧縮された大容量ログファイルがあり、興味のあるテキストにどの行番号が使用されているかを識別できます。
find . -name "*" -exec zgrep -C 1 -n -i -H TextToFind {} \;
しかし、2番目のコマンドでは、関心のある行番号を含む既知の2つの値の間の完全なメッセージを見つけたいと思います。私が望むテキストは、オープンとクローズの「実行」の間とファイルにありますが、特定の行番号を含むオープンとクローズの実行ブロックのみを返したいと思います。
たとえば、複数のテキスト文字列を含む大きな文書を介してWiggamを検索する場合は、一致させたいテキストを含む実行のみを表示したいと思います。
入力例は、検索文字列とどこでも一致しない次の項目です。出力例は次のとおりです。
take (937) ms, 成功(true), ペイロード [要求対象名 Ralph 城 Wiggam 4341 - 654f- 34834983489734987複数実行]
Took(937)ms、成功(True)、ペイロード[要求先名Ralph城Wiggam
</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>
]
どうすればいいですか?