0

我在使用 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 不是该工作的正确工具?

在此先感谢您的帮助。

4

1 回答 1

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} -> 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}
于 2021-08-09T13:47:47.967 回答