在實際生產環境中,常常需要從後台日誌中擷取報文,報文的形式類似於
乙個後台日誌有多個報文,每個報文可由操作流水唯一確定。
以前用awk寫過乙個,程式如下:
beginline=`awk'begin}
' $logname
`endline=`awk
'nr>
'$beginline'
}' $logname
`awk
'nr>=
'$beginline'
&&nr<=
'$endline'
' $logname
學了perl以後,發現perl很適合寫類似邏輯的指令碼,現改寫如下:
#!/usr/bin/perl
usestrict;
my$flag=0;my
$line
;while(<>)
if(/<\/interboss>/)
$line=''
; }
}
思路是:
將每乙個報文作為乙個整體,放到$line中,然後驗證給定的操作流水是否在$line中,如果在,則輸出$line,如果不在,則將$line置為空,繼續迴圈,直到遇到下乙個報文的,$line才開始填充。
那麼如何確保和之間的行填充到$line中呢?在這裡,引入了乙個變數$flag進行判斷,預設為0,在遇到時,將其置為1,在遇到時,又將其置為0。判斷是否填充的條件有兩個:一、匹配,二、$flag等於1,兩者只要符合乙個即可,這樣就可確保和之間的行填充到$line中。
如何用chrome擷取整個網頁
1.1 開啟chrome的開發者工具option command i mac ctrl shift i windows 1.2 然後按住快捷鍵command shift p mac ctrl shift p windows 1.3 輸入capture full size screenshot回車 1...
PERL如何用於自動化測試
perl廣泛用於自動化。它可能不是世界上最好的程式語言,但它最適合某些型別的任務。我們來討論perl用於自動化測試的位置和原因。儲存測試 什麼是儲存?資料儲存在files中。假設,我們有乙個與儲存相關的測試用例,我們必須在乙個分割槽上寫入資料,讀取並驗證資料是否正確寫入。這可以手動完成,但手動測試儀...
如何用SQL動態擷取字串的長度
我們都知道,sql擷取字串的固定長度,可以有sub 函式,rigth 函式,或者left 函式.如果擷取的字串是動態的乙個字段,那麼顯然,以上3個函式是不適用的.那麼如何動態的擷取字串的長度呢?比如 乙個表裡面有這麼validdate欄位,它的資料是這樣的形式插進去的,1,年 2,年 6,月 12,...