我在文件中有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.*'
答案 0 :(得分:1)
您可以使用名称组来提取所需内容,而不是进行替换:
Get-Content $Path | % { if ($_ -match '(?<FailCount>\d+ failed)') { $Matches["FailCount"] } }