2017-05-19 292 views
3

我需要从交换机/路由器解析'show env all',但是它们有不同的文本结构。如何使用带选项的TextFSM解析文本(如或者条件)

交换机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 

不同是 '系统'。我需要创建一个可以使用开关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或什么?

谢谢:)

回答

0

您可以添加system可选

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

DEMO与解释

+0

它的工作,谢谢:) –

+0

感谢您接受了答案 - 高兴能帮上忙。 – MaxZoom

+0

是的,不客气。谢谢你也是:) –