首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Select-String返回多行

Select-String返回多行
EN

Stack Overflow用户
提问于 2017-09-14 11:10:21
回答 2查看 1.3K关注 0票数 2

我正在学习PowerShell,希望在变量中匹配一个字符串。考虑一下这个例子:

代码语言:javascript
复制
$string = ipconfig
Select-String -InputObject $string -Pattern '127.0.0.1'

返回整个字符串。不只是'127.0.0.1'.,所以我试着:

代码语言:javascript
复制
Select-String -InputObject $string -SimpleMatch '127.0.0.1' -AllMatches

它还返回整个字符串。我做错了什么?我只想看比赛,而不是其他台词。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-14 11:26:16

正如arco444在注释中提到的,您可以简单地写:

> $string | Select-String -Pattern "127.0.0.1"

有关更多示例,请参见选择字符串文档

票数 -1
EN

Stack Overflow用户

发布于 2017-09-14 11:17:52

Select-String返回一个.Matches属性,它是匹配项的集合。它的.Value属性是匹配的值:

代码语言:javascript
复制
$string = ipconfig
(Select-String -InputObject $string -Pattern '127.0.0.1').Matches.Value

此示例将返回所有看似IP地址的值:

代码语言:javascript
复制
(Select-String -InputObject $string -Pattern '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' -AllMatches).Matches.Value

请注意,如果您正在匹配一个确切的模式(例如,没有通配符/regex),那么您可以只使用-Quiet,它根据模式是否匹配返回true/false:

代码语言:javascript
复制
$MyString = '127.0.0.1'
If (Select-String -InputObject $string -Pattern $MyString -Quiet) { $MyString }

然后

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46217532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档