如何解决如何使用“选择字符串”来过滤输出中的行
(首先,我已经搜索了SO,Internet,youtube半个小时,但没有给出正确的答案,所以我在这里问)
当您可以简单地从输出中过滤字符串时,我来自路由器和helpesk领域
“ |包含”(cisco)或“ | findstr”(Windows) 像这样:
我发现,在Powershell上,我们将'Select-String'与'Pattern'开关一起使用。
例如,我要打印出所有包含“后缀”一词的行 但它似乎不起作用。 正确的方法是什么,无需创建变量即可使用它。
解决方法
谢谢你们让我明白了该方法以数组的形式显示对象。
不幸的是,出于这一目的,我发现使用“ Where-Object”和“ Select-Object”很复杂,因此我使用“ Out-String -Stream” cmdlet将输出转换为字符串。
>Get-NetIPAddress | Out-String -Stream | Select-String -Pattern "127.0.0.1"
它做得很好。
, Select-String是一个cmdlet,用于在字符串和文件中查找文本。
Get-NetIPAddress不输出字符串,而是(CimInstance)对象的数组。
要从此数组中仅选择某些值,可以像实例一样将结果通过管道传递到Select-Object
Get-NetIPAddress | Select-Object Suffix*
其输出类似于:
SuffixOrigin
------------
Link
Link
WellKnown
Link
Dhcp
WellKnown
此输出本身可能不是很有用。.
您可能最终想要选择更多属性,例如with
Get-NetIPAddress -AddressFamily IPv4 | Select-Object IPAddress,InterfaceAlias,Suffix*
,
cmdlet Get-NetIPAdress
返回可以使用cmdlet Where-Object
进行过滤的对象数组。但是缺点是您必须选择要过滤的字段。 CrossEntropyLoss
中有一个简短的示例。或者,您可以使用cmdlet Select-Object
:
Get-NetIPAddress | Select-Object *fix*
否则,您还可以使用命令ipconfig
来过滤您的输出:
ipconfig | Select-String -Pattern "fix"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。