如何使用带有选项(如或条件)的 TextFSM 解析文本
how to parse text using TextFSM with option (like or condiiton)
我需要从 switch/router 中解析出 'show env all',但是有不同的文本结构。
开关 A :
FAN is OK
SYSTEM TEMPERATURE is OK
System Temperature Value: 38 Degree Celsius
System Temperature State: GREEN
Yellow Threshold : 58 Degree Celsius
Red Threshold : 68 Degree Celsius
开关 B :
FAN is OK
TEMPERATURE is OK
Temperature Value: 42 Degree Celsius
Temperature State: GREEN
Yellow Threshold : 54 Degree Celsius
Red Threshold : 64 Degree Celsius
不同的是'System'。我需要创建一个可用于开关 A 和 B 的 TextFSM 模板。因此,我不需要为每个开关创建 2 个 TextFSM 模板。
我当前的模板:
Value FAN (\S*)
Value TEMPERATURE (\S*)
Value TEMPERATURE_VALUE (\S*)
Value TEMPERATURE_STATE (\S*)
Value YELLOW_THRESHOLD (\S*)
Value RED_THRESHOLD (\S*)
Value POWER (\S*)
Value RPS (\S*)
Start
^FAN is ${FAN}
^TEMPERATURE is ${TEMPERATURE}
^Temperature Value: ${TEMPERATURE_VALUE}
^Temperature State: ${TEMPERATURE_STATE}
^Yellow Threshold : ${YELLOW_THRESHOLD}
^Red Threshold : ${RED_THRESHOLD}
*仅适用于交换机 B
我应该添加 [System] Temperature Value
还是什么?
谢谢:)
您可以添加 system
作为可选
^(?:SYSTEM )?TEMPERATURE is (.*)$
参见 DEMO 和解释
我需要从 switch/router 中解析出 'show env all',但是有不同的文本结构。
开关 A :
FAN is OK
SYSTEM TEMPERATURE is OK
System Temperature Value: 38 Degree Celsius
System Temperature State: GREEN
Yellow Threshold : 58 Degree Celsius
Red Threshold : 68 Degree Celsius
开关 B :
FAN is OK
TEMPERATURE is OK
Temperature Value: 42 Degree Celsius
Temperature State: GREEN
Yellow Threshold : 54 Degree Celsius
Red Threshold : 64 Degree Celsius
不同的是'System'。我需要创建一个可用于开关 A 和 B 的 TextFSM 模板。因此,我不需要为每个开关创建 2 个 TextFSM 模板。
我当前的模板:
Value FAN (\S*)
Value TEMPERATURE (\S*)
Value TEMPERATURE_VALUE (\S*)
Value TEMPERATURE_STATE (\S*)
Value YELLOW_THRESHOLD (\S*)
Value RED_THRESHOLD (\S*)
Value POWER (\S*)
Value RPS (\S*)
Start
^FAN is ${FAN}
^TEMPERATURE is ${TEMPERATURE}
^Temperature Value: ${TEMPERATURE_VALUE}
^Temperature State: ${TEMPERATURE_STATE}
^Yellow Threshold : ${YELLOW_THRESHOLD}
^Red Threshold : ${RED_THRESHOLD}
*仅适用于交换机 B
我应该添加 [System] Temperature Value
还是什么?
谢谢:)
您可以添加 system
作为可选
^(?:SYSTEM )?TEMPERATURE is (.*)$
参见 DEMO 和解释