2016-12-14 250 views
2

我有以下的文本文件如何从文本文件中提取子字符串?

testA=foo 
testB=foobar 
testC=Whatever 

现在我想提取值testB这是foobar。以我目前的PowerShell命令,我只能收到整条生产线:

testB=foobar 

我的命令是:

Select-String -Path .\test.txt -Pattern "testB=" -List 

我看到有替换功能的字符串,这样你就可以用空代替testB=字符串,但我不知道如何实现这一点。

回答

5

没有更换任何捕捉值。相反,将捕获组添加到您的搜索模式。然后,你可以访问捕获值:

(Select-String -Path $scripts.tmp -Pattern "testB=(.*)").Matches.Groups[1].Value 
+0

嗯,好吧我怎么能额外修剪值。 ? –

+0

只需在'.Matches.Groups [1] .Value'后面添加'.Trim()'' –

+0

应该是.Matches [0] .Groups改为.Matches.Groups –

1
(Get-Content | where {$_ -like "testB*"}).Replace('testB=','') 
+0

OPS,对不起,错字;( – 4c74356b41

0

您可以使用子字符串,例如:

$line = 'testB=foobar' 
$res = $line.Substring($line.IndexOf('=')+1)