我希望有人可以帮助我从哪里开始,我想从一些较大的数据中提取一些数据 我的数据如下:
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地址,这就是我要获取的内容。 我一直在谷歌搜索,不确定从哪里开始/该怎么做。 是正则表达式走的路,还是有更好的方法,任何示例都将不胜感激。 预先感谢
答案 0 :(得分:2)
这是获取该信息的一种方法... [咧嘴]
Get-Content
或某些预先存在的集合。 $Matches
自动变量中获取它们。 这是代码...
# 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
您可以使用Export-CSV
将其发送到结构良好的CSV文件中。