我有一个包含数百行包含数据库信息的文本文件。
我正在尝试为任何35GB的数据库提取DatabaseId
。
我想使用Powershell查询文件并生成包含所有匹配数据库的文本文件。
所以从本质上讲,我想浏览文件,找到一个35 DatabaseSize
,然后从之前的3行中提取相应的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
答案 0 :(得分:7)
尝试这样的事情:
(( GC myfile.txt |
Select-String 'DatabaseSize = 35' -Context 3 ).context.precontext)[0]
如果是多场比赛:
(GC myfile.txt |
SELECT-STRING 'DATABASESIZE = 35' -Context 3 ) | % { ($_.context.precontext)[0] }