6

我有一个包含数百行包含数据库信息的文本的文本文件。

我正在尝试DatabaseId为任何 35GB 的数据库提取 s 。

我想使用 Powershell 查询文件并生成一个包含所有匹配数据库的文本文件。

所以本质上,我想扫描文件,找到一个DatabaseSize35,然后DatabaseId从前面的3行中提取对应的。

我已经查看了整个网络,但似乎找不到任何可以做到这一点的东西。

文本文件的示例提取:

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 回答