Python 有没有办法在TextFSM中继续使用同一行的状态更改?
我知道我不能将状态转换与continue语句结合起来 我试图用ansible解析网络配置,其中唯一清晰的一行结尾是下一行的开头 例如,我想如下解析配置:Python 有没有办法在TextFSM中继续使用同一行的状态更改?,python,networking,ansible,cisco,python-textfsm,Python,Networking,Ansible,Cisco,Python Textfsm,我知道我不能将状态转换与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-c
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}.*$$
我一直在寻找同一个问题的答案,但没有找到(只找到了你的问题:)。 阿法克:
更新:我无意中发现了TextFSM的前瞻性方法。它让我知道了如何为我的任务找到解决方案,主要思想如下所述:谢谢,你的更新中的前瞻性解决方案确实是我一直在寻找的:D.将我的解决方案留在帖子中。
Value Required LINE (\d+\s+\d+)
Value vtyAcl (\d+|\w+)
Value aclDir (\w+)
Value vrfAlso (\w+-\w+)
Start
^line vty ${LINE}.*$$
^\s+access-class\s+${vtyAcl}\s+${aclDir}\s*(${vrfAlso})?.*$$ -> Record
^.* -> Record
EOF
LINE vtyAcl aclDir vrfAlso
------ -------- -------- ---------
0 4
5 16 95 in vrf-also
15 116 95 in