如何使用带有选项的TextFSM解析文本(比如或condiiton)

时间:2017-05-19 03:47:00

标签: python regex csv text-parsing python-textfsm

我需要从交换机/路由器解析'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

不同的是'系统'。我需要创建一个可以用于交换机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}

*仅适用于Switch B

我应该添加[System] Temperature Value或其他任何内容吗?

谢谢:)

1 个答案:

答案 0 :(得分:1)

您可以将dataset<-subset(a, selet=-c(??)) 添加为可选

system

请参阅DEMO并附上说明