使用TextFSM提取Trunk允许VLAN的模板优化问题
优化TextFSM模板提取指定Trunk允许VLAN
我懂你的困扰——当前模板会抓重复行,核心是状态切换逻辑没精准限定只匹配"Vlans allowed on trunk"对应的条目。给你调整后的模板,能准确拿到目标内容:
Value PORT (\S+) Value VLAN_ALLOWED (.*) Start ^Port\s+Vlans allowed on trunk -> ALLOWED_SECTION ALLOWED_SECTION ^${PORT}\s+${VLAN_ALLOWED} -> Record ^Port\s+.* -> Start # 遇到下一个Port开头的行,立刻回到初始状态,终止当前匹配
优化思路拆解:
- 状态划分更清晰:用
ALLOWED_SECTION专门处理目标VLAN行,彻底和其他VLAN相关区块划清界限 - 精准终止匹配:当匹配到下一个以
Port开头的行(也就是后续"allowed and active"或"forwarding state"区块的标题),直接切回Start状态,不会再捕获重复的VLAN内容 - 简化匹配逻辑:去掉原模板里可能导致误匹配的前瞻断言,通过状态流转直接控制匹配范围
用这个模板测试你给的show interface trunk输出,只会提取到Vlans allowed on trunk下方的VLAN列表,不会返回其他重复行。
内容的提问来源于stack exchange,提问作者Netman
相关产品推荐
相关产品推荐

