Powershell - 如何在文件中查找模式

时间:2018-02-20 16:41:24

标签: regex powershell

我在文件中有Visual Studio项目构建的输出。我想读取该文件,找到模式并删除文件中除了模式本身之外的其他内容。

要查找的模式类似于23 failed

文本文件如下:

Microsoft Visual Studio  
Copyright (C) Microsoft Corp. All rights reserved.  
1>------ Build started: Project: Test, Configuration: Debug ------  
1>   Creating library S:\Test\Test.lib and object S:\Test\Test.exp  
1>Test.vcxproj -> S:\Test\Debug\Test.dll  
========== Build: 1 succeeded, 23 failed, 12 up-to-date, 0 skipped ==========

我试过这个,但它没有成功:

$var = (Get-Content "$Path") -replace 's/.*(\d)+ failed.*'

1 个答案:

答案 0 :(得分:1)

您可以使用名称组来提取所需内容,而不是进行替换:

Get-Content $Path | % { if ($_ -match '(?<FailCount>\d+ failed)') { $Matches["FailCount"] } }