我从路由器跟踪日志:
LC/0/0/CPU0:Dec 13 20:34:10.487 : netio[262]: %PKT_INFRA-PQMON-6-QUEUE_DROP : Taildrop on XIPC queue 2 owned by arp (jid=126)
LC/0/2/CPU0:Dec 13 20:34:13.272 : netio[262]: %PKT_INFRA-PQMON-6-QUEUE_DROP : Taildrop on XIPC queue 2 owned by arp (jid=216)
LC/0/1/CPU0:Dec 13 20:34:15.721 : netio[262]: %PKT_INFRA-PQMON-6-QUEUE_DROP : Taildrop on XIPC queue 2 owned by arp (jid=117)
我们可以检查第一行,例如,我想使用TCL过滤0/0 / CPU0到$ a; 126到$ b。由于这些信息应该是可变的,因此无法通过字符串过滤,例如第2行,更改为0/2 / CPU0和216.
我只需要TCL来聚焦一行,对于所有行,我可以使用循环语句结构来检查每一行是否被同一个TCL。
需要你的帮助!
% set x {LC/0/0/CPU0:Dec 13 20:34:10.487 : netio[262]: %PKT_INFRA-PQMON-6-QUEUE_DROP : Taildrop on XIPC queue 2 owned by arp (jid=126)}
LC/0/0/CPU0:Dec 13 20:34:10.487 : netio[262]: %PKT_INFRA-PQMON-6-QUEUE_DROP : Taildrop on XIPC queue 2 owned by arp (jid=126)
%
% set x
LC/0/0/CPU0:Dec 13 20:34:10.487 : netio[262]: %PKT_INFRA-PQMON-6-QUEUE_DROP : Taildrop on XIPC queue 2 owned by arp (jid=126)
%
% regexp ?
答案 0 :(得分:1)
与我的朋友DaPeng讨论后提供了答案:
% set x {LC/0/0/CPU0:Dec 13 20:34:10.487 : netio[262]: %PKT_INFRA-PQMON-6-QUEUE_DROP : Taildrop on XIPC queue 2 owned by arp (jid=116)}
LC/0/0/CPU0:Dec 13 20:34:10.487 : netio[262]: %PKT_INFRA-PQMON-6-QUEUE_DROP : Taildrop on XIPC queue 2 owned by arp (jid=116)
%
%
% regexp {LC/([0-9]/[0-9]/CPU[0-9]).*\(jid=([0-9]+)\)} $x all location jid
1
% set all
%
LC/0/0/CPU0:Dec 13 20:34:10.487 : netio[262]: %PKT_INFRA-PQMON-6-QUEUE_DROP : Taildrop on XIPC queue 2 owned by arp (jid=116)
%
% set location
0/0/CPU0
%
% set jid
116