いくつかのログ分析を実行したいと考えています。ログ ファイルの例を以下に示します。プロシージャ/スクリプトでこの問題を解決する方法は知っていますが、パイプラインなどを使用して「powershell スタイル」でどのように実行できるのだろうか
ログ ファイルには、ファイル名とコンポーネントのリストを含む文字列が含まれます。それらのそれぞれは、「合格」または「失敗」することができます。FAILED コンポーネントが少なくとも 1 つある「Checking」で始まるすべての行を印刷したいと考えています。
Checking : C:\TFS\Datavarehus\Main\ETL\SSIS\DVH Project\APL_STG1_Daglig_Master.dtsx
Checking : C:\TFS\Datavarehus\Main\ETL\SSIS\DVH Project\COPY_STG1_APL_Dekningsgrupper_Z1.dtsx
SQLCommand [Z1 APL_Dekningsgrupper] FAILED the VA1 check (table name as source)
SQLCommand [APL_Dekningsgrupper] passed the VA1 check
SQLCommand [FAK_Avkastningsgaranti_Kollektiv] FAILED the VA1 check (table name as source)
Checking : C:\TFS\Datavarehus\Main\ETL\SSIS\DVH Project\DM_DVH_BpBedrift_InvesterteFond 1.dtsx
SQLCommand [DVH] passed the VA1 check
SQLCommand [Avtale Kurs] passed the VA1 check
一見すると、次のようなものが必要なように見えます
gc logtxt | select-string -pattern 'FAILED' -context <nearest line starting with "Checking" in begining direction>,<lines count from CheckingLine to "LineWith 'FAILED'">