我知道我不能将状态转换与continue语句结合起来
我试图用ansible解析网络配置,其中唯一清晰的一行结尾是下一行的开头
例如,我想如下解析配置:
line vty 0 4
exec-timeout 30 0
authorization exec MIRADIUS
accounting connection MIRADIUS
accounting exec MIRADIUS
login authentication MIRADIUS
line vty 5 16
access-class 95 in vrf-also
exec-timeout 30 0
authorization exec MIRADIUS
accounting connection MIRADIUS
accounting exec MIRADIUS
login authentication MIRADIUS
history size 25
transport input ssh
line vty 15 116
access-class 95 in
exec-timeout 30 0
authorization exec MIRADIUS
accounting connection MIRADIUS
accounting exec MIRADIUS
login authentication MIRADIUS
history size 25
我正在使用的模板:
Value Required LINE (\d+\s+\d+)
Value vtyAcl (\d+|\w+)
Value aclDir (\w+)
Value vrfAlso (\w+-\w+)
Start
^\s+access-class\s+${vtyAcl}\s+${aclDir}\s+${vrfAlso}.*$$
^\s+access-class\s+${vtyAcl}\s+${aclDir}.*$$
^line vty ${LINE}.*$$ -> Continue.Record
因此,我必须知道的唯一确定的方法是,我已经完成了vty04,例如,vty516启动
因此,可以继续使用该行以保存新的vty? 当前我的模板正在nextone中保存前一行的配置。我没有办法知道哪条线是最后的可能
Current result:
[
{
"LINE": "0 4",
"aclDir": "",
"vrfAlso": "",
"vtyAcl": ""
},
{
"LINE": "5 16",
"aclDir": "",
"vrfAlso": "",
"vtyAcl": ""
},
{
"LINE": "15 116",
"aclDir": "in",
"vrfAlso": "vrf-also",
"vtyAcl": "95"
}
]
Desired Result:
[
{
"LINE": "0 4",
"aclDir": "",
"vrfAlso": "",
"vtyAcl": ""
},
{
"LINE": "5 16",
"aclDir": "in",
"vrfAlso": "vrf-also",
"vtyAcl": "95"
},
{
"LINE": "15 116",
"aclDir": "in",
"vrfAlso": "",
"vtyAcl": "95"
}
]
更新:这里是针对此特定问题的解决方案更新。谢谢
Value Required LINE (\d+\s+\d+)
Value vtyAcl (\d+|\w+)
Value aclDir (\w+)
Value vrfAlso (\w+-\w+)
Start
^line vty -> Continue.Record
^\s+access-class\s+${vtyAcl}\s+${aclDir}\s+${vrfAlso}.*$$
^\s+access-class\s+${vtyAcl}\s+${aclDir}.*$$
^line vty ${LINE}.*$$
我一直在寻找同一个问题的答案,但没有找到(只找到了你的问题:)。 阿法克:
我现在使用的解决方法是什么?因此,我使用了几个模板,一个模板提取VTY编号和一个用于此行的参数。然后将结果组合在一起
但在您的情况下,每个“line vty X Y”块只有一个“有趣的”行,而这一行不是“line vty X Y”块中的最后一行,因此您可以使用正确的正则表达式(我稍微更正一下您的模板-vrfAlso“may be”或“may NOT”存在)和一点TextFSM技巧:)
在这里,我们使用“^.*->;记录”来记录没有“有趣”字符串的行
你会得到你想要的结果(我想):
不幸的是,在我的例子中,我有多个“有趣的”字符串,它们可能是一个块中的最后一个,因此它对我不起作用(
更新:我无意中发现了TextFSM展望未来的方式。它给了我一个如何为我的任务找到解决方案的想法,主要思想如下所述:https://github.com/google/textfsm/issues/22
相关问题 更多 >
编程相关推荐