例如,如何使用select-string
从txt文件中获取特定的字符串,到目前为止,我尝试过:
$path = "\\serverpath\servername.txt"
$list = select-string -path $path -pattern "node"
write-host $list
servername.txt
包含:
servername is node1 and it is development server, it has problem
servername is node2 and it is production server, it is good
因此我只需要列出node1
文件中的node2
,.txt
...。
答案 0 :(得分:2)
当您要使用Select-String
时,您可以扩展模式以匹配node
之后的数字并提取匹配的值,如下所示:
$path = "\\serverpath\servername.txt"
$list = Select-String -Path $path -Pattern "node\d+" -AllMatches | % {$_.Matches.Value}
Write-Host $list
说明:
"node\d+"
-> \d+
匹配单词node
+单词(x> 0)后的x位数
%
-> ForEach-Object
管道的别名
$_.Matches.Value
->给出匹配的值
答案 1 :(得分:0)
您可以使用正则表达式模式,然后使用生成的Matches
对象的select-string
属性。
$path = "\\serverpath\servername.txt"
$list = (select-string -Path $path -pattern "(node\d)").Matches
write-host $list
正则表达式模式匹配node
以及其后的0-9
之间的一位数字。