小编use*_*033的帖子

TCL/Expect regexp 匹配多行输出

我很难匹配从 cisco 路由器返回的模式。这是 sh run prefix-set xxx 命令的 $expect_out(buffer) 输出:

sh run prefix-set abc_123   





RP/0/RSP0/CPU0:a1.rtr2#sh run prefix-set abc_123
RP/0/RSP0/CPU0:a1.rtr2#sh run prefix-set abc_123-99999-in 


Fri Dec  6 21:12:16.863 GMT
prefix-set abc_123-99999-in

  2.245.109.0/24 le 32,

  2.245.196.0/22 le 32,

  2.245.246.0/23 le 32,

  2.245.248.0/23 le 32

end-set

!
Run Code Online (Sandbox Code Playgroud)

使用正则表达式,我想通过“end-set”匹配“prefix-set”,消除之前和之后的所有内容。

我正在寻找最终看起来像这样的数据:

prefix-set abc_123-99999-in
  2.245.109.0/24 le 32,
  2.245.196.0/22 le 32,
  2.245.246.0/23 le 32,
  2.245.248.0/23 le 32
end-set
Run Code Online (Sandbox Code Playgroud)

“abc_123-99999-in”和返回的前缀总是不同的。

我目前使用的代码:

expect "\r"
send_user ">>>>>  Executing: sh run prefix-set $ccname  <<<<\n"

#show prefix-set.  \t tabs out the name for …
Run Code Online (Sandbox Code Playgroud)

regex tcl expect

3
推荐指数
1
解决办法
7613
查看次数

标签 统计

expect ×1

regex ×1

tcl ×1