【发布时间】:2014-07-17 23:42:14
【问题描述】:
我是 Expect 脚本的新手,并试图解析 Cisco 路由器 ACL 输出。
我专门尝试解析前 2 行注释之间的 IP 地址。非常感谢任何帮助。
这是我的随机尝试之一。它从 ACL 中解析 IP 地址,但不会停在第二行:
send "show run | section ip access-list extended OUTSIDE\r\n"
set ip {}
expect {
"remark ##### DENIED HOSTS #####\r\n" {
expect -re {(\d+\.\d+\.\d+\.\d+)} {
set ip "${ip}$expect_out(0,string)"
puts $ip
set ip {}
exp_continue
}
}
}
脚本不仅没有像我希望的那样停在第二个注释行,而且它似乎没有退出点并等待 Expect 超时。
随机样本 ACL 供参考:
ip access-list extended OUTSIDE
remark ##### DENIED HOSTS #####
deny ip host 2.2.2.2 any
deny ip host 9.9.9.9 any
deny ip host 8.7.6.5 any
deny ip host 5.6.7.8 any
deny ip host 5.5.5.5 any
deny ip host 4.4.4.4 any
deny ip host 3.3.3.3 any
remark ########################
permit tcp any any eq 22
deny ip any any
permit ip host 2.3.5.1 any
我基本上是想解析从2.2.2.2到3.3.3.3的地址,但是一旦脚本到达第二个注释行就退出。
【问题讨论】:
-
请格式化您的帖子。在这里阅读一篇文章并不好玩......
标签: parsing expect cisco command-line-interface