Как анализировать текст с помощью TextFSM с опцией (например, или условия)

Мне нужно разобрать 'show env all' из коммутатора / маршрутизатора, но там другая текстовая структура.

Переключатель А:

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

Различным является "Система". Мне нужно создать один шаблон TextFSM, который можно использовать для коммутаторов A и B. Поэтому мне не нужно создавать 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 или что-нибудь?

Спасибо:)

1 ответ

Решение

Можете добавить system по желанию

^(?:SYSTEM )?TEMPERATURE is (.*)$

Смотрите ДЕМО с объяснением

Другие вопросы по тегам