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

求适用于Cisco ISE版本信息解析的TextFSM模板

解决Cisco ISE版本与补丁的TextFSM解析方案

先给出典型的show application version ise命令输出示例,方便模板适配:

Cisco Identity Services Engine
---------------------------------------------
Version      : 3.2.0.542
Build Date   : Tue May 18 00:22:05 PDT 2021
Install Date : Wed May 19 10:15:32 PDT 2021

Cisco Identity Services Engine Patch 2
---------------------------------------------
Version      : 2
Build Date   : Fri Jul 23 00:15:42 PDT 2021
Install Date : Fri Jul 23 10:02:18 PDT 2021

Cisco Identity Services Engine Patch 3
---------------------------------------------
Version      : 3
Build Date   : Mon Aug 16 00:08:35 PDT 2021
Install Date : Mon Aug 16 09:45:22 PDT 2021

方案一:按输出块区分(推荐,可靠性更高)

利用输出中主版本和补丁的区块标题差异(主版本对应Cisco Identity Services Engine,补丁对应Cisco Identity Services Engine Patch N)来区分,补丁为可选内容。

TextFSM模板

Value MAIN_VERSION (\d+\.\d+\.\d+\.\d+)
Value PATCH_VERSION (\d+)

Start
  ^Cisco Identity Services Engine$ -> MainBlock
  ^Cisco Identity Services Engine Patch \d+$ -> PatchBlock

MainBlock
  ^Version\s+: ${MAIN_VERSION} -> Continue.Record
  ^$ -> Start

PatchBlock
  ^Version\s+: ${PATCH_VERSION} -> Continue.Record
  ^$ -> Start

解析逻辑

  1. 状态跳转:在Start状态识别区块标题,分别进入主版本块或补丁块的处理状态
  2. 提取值:在对应区块内匹配Version行,提取对应格式的版本号
  3. 状态重置:遇到空行时回到Start状态,处理下一个区块

输出与后续处理

模板直接输出格式为:

[['3.2.0.542', ''], ['3.2.0.542', '2'], ['3.2.0.542', '3']]

如果需要合并成你期望的[[3.2.0.542, [2,3]]]格式,可通过简单的Python代码处理:

import textfsm

with open('ise_version.template', 'r') as f, open('ise_output.txt', 'r') as output:
    template = textfsm.TextFSM(f)
    raw_result = template.Parse(output.read())

main_ver = raw_result[0][0]
patches = [item[1] for item in raw_result if item[1]]
final_result = [[main_ver, patches]]
print(final_result)

方案二:通过版本格式正则区分

利用主版本(四段数字x.x.x.x)和补丁版本(纯数字)的格式差异,直接匹配区分。

TextFSM模板

Value MAIN_VERSION (\d+\.\d+\.\d+\.\d+)
Value PATCH_VERSION (\d+)

Start
  ^Version\s+: ${MAIN_VERSION}
  ^Version\s+: ${PATCH_VERSION}

解析逻辑

通过正则表达式的格式差异直接匹配:

  • MAIN_VERSION匹配四段式版本号
  • PATCH_VERSION匹配纯数字补丁号

优缺点

  • 优点:模板更简洁,无需处理区块跳转
  • 缺点:依赖版本格式的固定性,如果后续补丁版本格式变为多段式(如1.1),则需要调整正则

测试方法

使用TextFSM命令行工具验证模板:

textfsm -t ise_version.template ise_output.txt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 12:35:08