You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Cisco交换机show platform命令的TextFSM模板合并多段输出数据

问题原因
  • 未给交换机编号字段设置Key属性:TextFSM的Key属性可以将相同字段值的多行数据合并为同一条记录,你的场景中硬件信息和角色信息分属两个不同的表格,需要用交换机编号作为关联主键合并数据,没有设置Key会导致硬件和角色信息被识别为独立的记录。
  • 状态跳转逻辑错误:匹配到第一台交换机的硬件信息后直接跳转到Stack状态,导致第2、3台交换机的硬件信息没有被捕获,对应字段为空。
  • 角色行未捕获交换机编号:原角色行的匹配规则没有提取交换机编号,无法将角色、优先级、状态和对应编号的硬件信息关联。
  • 缺少无关行处理规则:中间的堆叠MAC地址、表头等无关行没有匹配规则,会导致解析流程异常。
修改后的TextFSM模板
Value Key SWITCH ([1-8])
Value PORTS (\d+)
Value MODEL (\S+)
Value SERIAL (\S+)
Value MAC ([0-9a-f]{4}\.[0-9a-f]{4}\.[0-9a-f]{4})
Value HARDWARE (\S+)
Value VERSION (\S+)
Value ROLE (Active|Standby|Member)
Value PRIORITY ([1-9]|1[0-5])
Value STATE (\S+)

Start
  # 匹配硬件表行,捕获硬件字段,继续处理后续行
  ^\s*${SWITCH}\s+${PORTS}\s+${MODEL}\s+${SERIAL}\s+${MAC}\s+${HARDWARE}\s+${VERSION}\s*$ -> Continue
  # 匹配角色表行,捕获角色相关字段,匹配完成后合并记录输出
  ^[* ]?${SWITCH}\s+${ROLE}\s+${PRIORITY}\s+${STATE}\s*$ -> Record
  # 跳过所有无关行(表头、分割线、堆叠MAC信息等)
  ^.* -> Continue
模板说明
  • 给SWITCH字段添加Key属性,作为合并硬件和角色信息的关联主键,相同交换机编号的多行数据会自动合并为一条完整记录
  • 去掉了错误的状态跳转逻辑,所有行都在Start状态处理,确保所有硬件行都能被捕获
  • 角色行的匹配规则增加了对交换机编号的捕获,同时兼容编号前的*标记(代表主用交换机)
  • 最后一行规则匹配所有未明确匹配的无关行,避免解析中断

内容的提问来源于stack exchange,提问作者Tes3awy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 11:36:04