Powershell 如何从字符串中获取2个值
我希望有人能帮助我从哪里开始,我想从一些更大的数据中提取一些数据 我的数据如下所示:Powershell 如何从字符串中获取2个值,powershell,Powershell,我希望有人能帮助我从哪里开始,我想从一些更大的数据中提取一些数据 我的数据如下所示: IP-MIB::ipNetToMediaPhysAddress.13600001.10.4.48.1 = STRING: 36:b:7:0:41:31 IP-MIB::ipNetToMediaPhysAddress.13600001.10.4.49.21 = STRING: 3b:fa:a2:us:74:d9 IP-MIB::ipNetToMediaPhysAddress.13600001.10.3.50.22
IP-MIB::ipNetToMediaPhysAddress.13600001.10.4.48.1 = STRING: 36:b:7:0:41:31
IP-MIB::ipNetToMediaPhysAddress.13600001.10.4.49.21 = STRING: 3b:fa:a2:us:74:d9
IP-MIB::ipNetToMediaPhysAddress.13600001.10.3.50.22 = STRING: 3b:fa:a2:us:7b:f3
每行都有一个以10开头的IP地址。最后的mac地址,这就是我想要的。
我一直在谷歌上搜索,不知道从哪里开始/做什么。
Regex是一个好方法,还是有更好的方法,任何例子都将不胜感激。
提前感谢这里有一种获取信息的方法。。。[咧嘴笑]
- 文本文件中的假读取
您很可能希望使用
或一些预先存在的集合李>Get Content
- 遍历集合
- 使用命名的捕获组正则表达式在IP和MAC上进行匹配
- 从匹配数据创建PSCustomObject
您可以从
自动变量中获取它们李>$Matches
- 发送当前对象以由$Results变量收集
- 显示该集合
# fake reading in a text file
# in real life, use Get-Content
$InStuff = @'
IP-MIB::ipNetToMediaPhysAddress.13600001.10.4.48.1 = STRING: 36:b:7:0:41:31
IP-MIB::ipNetToMediaPhysAddress.13600001.10.4.49.21 = STRING: 3b:fa:a2:us:74:d9
IP-MIB::ipNetToMediaPhysAddress.13600001.10.3.50.22 = STRING: 3b:fa:a2:us:7b:f3
'@ -split [environment]::NewLine
$Results = foreach ($IS_Item in $InStuff)
{
$Null = $IS_Item -match '\.\d{8}\.(?<IPv4>.+) = .+: (?<MacAddress>.+)$'
[PSCustomObject]@{
IPv4 = $Matches.IPv4
MacAddress = $Matches.MacAddress
}
}
$Results
#在文本文件中假读
#在现实生活中,使用获取内容
$InStuff=@'
IP-MIB::ipNetToMediaPhysAddress.13600001.10.4.48.1=字符串:36:b:7:0:41:31
IP-MIB::ipNetToMediaPhysAddress.13600001.10.4.49.21=字符串:3b:fa:a2:us:74:d9
IP-MIB::ipNetToMediaPhysAddress.13600001.10.3.50.22=字符串:3b:fa:a2:us:7b:f3
'@-split[environment]::换行符
$Results=foreach($InStuff中的项目)
{
$Null=$IS\u Item-match'\.\d{8}\.(?。+)=.+:(?。+)$'
[PSCustomObject]@{
IPv4=$Matches.IPv4
MacAddress=$Matches.MacAddress
}
}
$Results
您可以使用
导出CSV
将其发送到结构良好的CSV文件 非常感谢Lee,非常感谢,我想你可以向我解释regex,至少在你提供的例子中是这样,还是很难理解?@Bill-非常欢迎你!我不太擅长解释正则表达式,所以我建议您访问此站点…//到那里,将regex模式粘贴到中间的顶部框中[不带周围的单引号],最右边的解释
框将显示每个步骤的功能。//如果您想看到它的实际效果,还可以将样本粘贴到中间的第二个框中。[咧嘴笑]