我正在尝试构建一些正则表达式来提取 Asterisk 中队列状态的统计信息。我对正则表达式比较陌生,所以离解决方案还很远。我有以下输出要解析:
Parsing /etc/asterisk/extconfig.conf
0009*007 has 2 calls (max unlimited) in 'ringall' strategy (0s holdtime), W:0, C:0, A:7, SL:0.0% within 0s
Members:
0009*001 (Local/0009*001@queue/nj) (In use) has taken no calls yet
Callers:
1. SIP/chan5-000a29f2 (wait: 0:08, prio: 0)
2. SIP/0139*741-000a29f7 (wait: 0:03, prio: 0)
实际输出将包含多个队列的信息,因此它将从第二行重复。第一行只显示一次。
我需要得到队列 ID(在本例中为 0009*007)和呼叫列表及其各自的等待时间。
到目前为止,我已经使用以下正则表达式来匹配队列号:
\b^[0-9]{4}\*[0-9]{3}\b
但这不起作用。不确定如何将呼叫与等待时间相匹配。理想情况下,我想要这样的输出:
0009*007,1,0:08
0009*007,2,0:03
我很可能会用 Perl 编写最终脚本。