使用textfsm解析分层文本输出



我在用textfsm解析设备的分层数据时遇到了一些麻烦。

数据类似于:

pcc-filter-base-name : P2P-BASE
filter = 1337x
filter-state = enabled
flow-inactivity-time = 0
flow-initiation = uplink
l7-uri = 1337x:
precedence = 1
protocol-id = 0
filter = abc
filter-state = enabled
flow-inactivity-time = 0
flow-initiation = uplink
l7-uri = abc:
precedence = 2
protocol-id = 0
filter = adc
filter-state = enabled
flow-inactivity-time = 0
flow-initiation = uplink
l7-uri = adc:
precedence = 3
protocol-id = 0
pcc-filter-base-name : FACEBOOK_FLEX-BASE
filter = IP_NET_1
destination-address = 157.240.24.32/29
destination-port-list = 80,443
filter-state = enabled
flow-inactivity-time = 0
flow-initiation = uplink
precedence = 1
protocol-id = 0
filter = IP_NET_2
destination-address = 157.240.25.32/29
destination-port-list = 80,443
filter-state = enabled
flow-inactivity-time = 0
flow-initiation = uplink
precedence = 2
protocol-id = 0
filter = IP_NET_3
destination-address = 157.240.26.32/29
destination-port-list = 80,443
filter-state = enabled
flow-inactivity-time = 0
flow-initiation = uplink
precedence = 3
protocol-id = 0

我试图用这个模板解析它:

Value Filldown filter_base_name (S+)
Value Required filter (S+)
Value filter_state (S+)
Value flow_inactivity_time (S+)
Value flow_initiation (S+)
Value l7_uri (S+)
Value Required precedence (S+)
Value protocol_id (S+)
Value destination_address (S+)
Value destination_port_list (S+)

Start
^pcc-filter-base-name : ${filter_base_name} -> Filter
Filter
^filter = ${filter}
^filter-state = ${filter_state}
^flow-inactivity-time = ${flow_inactivity_time}
^flow-initiation = ${flow_initiation}
^l7-uri = ${l7_uri}
^precedence = ${precedence}
^protocol-id = ${protocol_id}
^destination-address = ${destination_address}
^destination-port-list = ${destination_port_list}
^pcc-filter-base-name : ${filter_base_name} -> Record Start

然而,这与我期望的结果相去甚远,我期望的结果是从每个过滤器基中收集所有过滤器。

到目前为止,我已经尝试了几种方法,但我不知道我在做什么,也许textfsm不是适合这项工作的工具?

提前感谢您的帮助。

似乎我只需要发布问题来获得自己的答案…

Value Filldown filter_base_name (S+)
Value Required filter (S+)
Value filter_state (S+)
Value flow_inactivity_time (S+)
Value flow_initiation (S+)
Value l7_uri (S+)
Value Required precedence (S+)
Value protocol_id (S+)
Value destination_address (S+)
Value destination_port_list (S+)

Start
^pcc-filter-base-name : ${filter_base_name} -> Next.Record
^filter = ${filter}
^filter-state = ${filter_state}
^flow-inactivity-time = ${flow_inactivity_time}
^flow-initiation = ${flow_initiation}
^l7-uri = ${l7_uri}
^precedence = ${precedence}
^protocol-id = ${protocol_id} -> Next.Record
^destination-address = ${destination_address}
^destination-port-list = ${destination_port_list}

最新更新