【发布时间】:2018-12-28 02:16:41
【问题描述】:
我在下面编写了 powershell 脚本和正则表达式来提取第一行(端口名称状态 Vlan 速度类型)和最后一行(在此处结束)之间的文本块,但它不起作用。如果您有建议,请帮助!谢谢
运行这个脚本,它只返回了第一行。
Function Find_Ports($String)
foreach ($File in $Files)
{
$Config = Get-Content $File
$Port = Select-String -Path $File -Pattern $String | Select -
ExpandProperty line | Select-Object -First 1
if($Port)
{
$Port
}
Else
{
Write-Host "no port"
}
}
Find_Ports " (smi)^Port\s.+Name\s.+Status\s.+Vlan\s.+Duplex\s.+Speed\sType\r\n.*End\Here$"
下面是文本文件
端口名称状态 Vlan 双工速度类型 Gi1/1 禁用 1 自动 自动 10/100/1000-TX Gi1/2 禁用 1 自动 自动 10/100/1000-TX Gi1/3 禁用 1 自动 自动 10/100/1000-TX Gi1/4 禁用 1 自动 自动 10/100/1000-TX Gi1/5 禁用 1 自动 自动 10/100/1000-TX Gi1/6 禁用 150 自动 自动 10/100/1000-TX Po1连接中继a-full a-1000 到此结束
【问题讨论】:
-
你为什么要逃避
H?^Port Name Status Vlan Duplex Speed[\w\W]+End Here$这个怎么样?
标签: regex