1
我正在创建一个perl脚本,以便在返回SIP中继线状态的PABX系统上运行。我很新的Perl和想从下面的命令创建一个使用输出脚本在perl中分割和过滤linux命令的输出
/usr/sbin/asterisk -rx "sip show registry"
返回以下输出
Host dnsmgr Username Refresh State Reg.Time
x.x.x.x:5060 N 02xxxxxxxx 105 Registered Thu, 28 Aug 2014 06:34:21
1 SIP registrations.
我要过滤的用户名字段,并得到国家场,我可以通过以下命令轻松地在命令行执行此操作,但无法在perl中执行此操作。还有哪些是最佳实践,使用perl函数或将数据传递回像grep和awk这样的程序?
/usr/sbin/asterisk -rx "sip show registry" | awk '/02xxxxxxxx/ {print $5}'
返回无论在状态栏,在这个例子中,它返回
Registered
然后,我想如果语句状态比较的和执行取决于状态的行动,这一点似乎虽然很容易。
在这个例子中,只有一个SIP中继,但可能有很多。
您是否能够将上述代码分解为拆分,打印和if语句等关键组件,而不是优化的单行版本,这将有助于我更好地理解。谢谢 – 2014-10-12 00:34:35
@MattPrice:检查更新。 – choroba 2014-10-12 08:59:17
@choroba你知道perl的这个多参数形式是什么版本的吗?似乎它不在5.12中,而是在5.18中。另外,你能否简要解释一下这些好处?我相信我已经知道一些好处,但会感谢您的体验。 – Miller 2014-10-16 21:04:56