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