2017-05-19 290 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

是的,不客氣。謝謝你也是:) –