6

データベース情報を含む数百行のテキストを含むテキスト ファイルがあります。

DatabaseId35GB のデータベースの sを抽出しようとしています。

Powershell を使用してファイルを調査し、一致するすべてのデータベースを含むテキスト ファイルを生成したいと考えています。

したがって、本質的には、ファイルをスキャンし、35 である a を見つけて、3 行前からDatabaseSize対応するものを抽出したいと思います。DatabaseId

私はネット全体を見てきましたが、これを行うことができるものを見つけることができないようです.

テキスト ファイルの抽出例:

ServerId = VMlinux-b71655e1
DatabaseId = db-ecb2e784
Status = completed
LocationId = 344067960796
DatabaseSize = 30

ServerId = VMlinux-0db8d45b
DatabaseId = db-cea2f7a6
Status = completed
LocationId = 344067960796
DatabaseSize = 35

ServerId = VMlinux-c5388693
DatabaseId = db-9a421bf2
Status = completed
LocationId = 344067960796
DatabaseSize = 8

etc
4

1 に答える 1

8

次のようなものを試してください:

(( GC myfile.txt | 
   Select-String 'DatabaseSize = 35' -Context 3 ).context.precontext)[0]

複数試合の場合:

(GC myfile.txt | 
SELECT-STRING 'DATABASESIZE = 35' -Context 3 ) | % { ($_.context.precontext)[0] }
于 2013-05-16T13:36:22.743 に答える