我不太清楚我的问题该怎么说,所以我会尽我所能举个例子。
-------------------------------------------------
Port 0/1, port index, 4 devices total, 3 online
-------------------------------------------------
ID Info Last Seen
-------------------------------------------------
0 111 1m 3s ago
1 222 never seen
2 333 30s ago
14 444 2m 12s ago
-------------------------------------------------
ID Type Distance
-------------------------------------------------
0 aaa 322m
1 bbb -
2 ccc 932m
14 ddd 194m
-------------------------------------------------
-------------------------------------------------
Port 0/2, port index, 4 devices total, 4 online
-------------------------------------------------
ID Info Last Seen
-------------------------------------------------
23 555 3m 2s ago
24 666 23m 4s ago
51 777 23s ago
52 888 14m 22s ago
-------------------------------------------------
ID Type Distance
-------------------------------------------------
23 eeee 23m
24 ffff -
51 gggg 442m
52 hhhh 167m
-------------------------------------------------
我不确定如何匹配出现在每个端口下的两个表,同时将其作为textfsm解析器中的单个条目返回。我得到的最远的结果是用这个模板得到最后一个条目(888和hhhh):
Value Filldown PORT (\d+\/\d+)
Value Required ID (\d+)
Value INFO (\w+)
Value LAST_SEEN (.*)
Value TYPE (\w+)
Value DISTANCE (\S+)
Start
^\s+Port\s+${PORT}.* -> Record
^\s+ID.*Last\s+Seen -> Table1
Table1
^\s+${ID}\s+${INFO}\s+${LAST_SEEN}
^\s+ID.*Distance -> Table2
Table2
^\s+${ID}\s+${TYPE}\s+${DISTANCE}
^\s+-+
^\s+Port\s+${PORT} -> Start
我得到的数据:
[
{
"DISTANCE": "167m",
"ID": "52",
"INFO": "888",
"LAST_SEEN": "14m 22s ago",
"PORT": "0/2",
"TYPE": "hhhh"
}
]
我试过改变一些东西,但似乎不知道我应该在哪里寻找,以确保每个条目都得到记录。。。
如果有人能给我指出正确的方向,我将不胜感激。