我需要提取從日誌文件看起來像這樣的請求中提取一定的模式:從日誌
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<vehicleRegistration>
.... XML in between ....
.... XML in between ....
.... XML in between ....
.... XML in between ....
... at nth line there is line like this <vehicle id="2312313"></vehicle>
.... XML in between ....
.... XML in between ....
</vehicleRegistration>
重要的問題是,vehicleRegistration可以5日線和17有時,它的多變。這就是我目前的grep的失敗,我用:
grep -A 13 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" vehicle.log
而且另一個問題是,有時一個請求可以發送2次以上,因爲該服務可能會因某些原因無法使用,所以有可能是相同的文件中有多個請求。
我也應該排除重複的請求,通過比較第n行(不是最後一行)<vehicle id="2312313"></vehicle>
,如果車輛id重複比它的重複,知道請求是重複的方式。
你將如何解決這個問題?建議,代碼,僞代碼,任何東西都是值得歡迎的。
編輯:
日誌文件不是一個XML文件,它只是一個包含XML請求的一些小的百分比和文件,我不能分析它爲XML
編輯II:
我只提取車輛註冊部分,使用@eugene y一行命令perl -nle 'm{<vehicleRegistration>} .. m{</vehicleRegistration>} and print' logfile
,我怎樣才能擺脫重複,那些具有相同車輛ID的節點,我只想保留這些副本。
感謝您的迴應,上面做了什麼?打印車輛ID?我需要使用此車輛識別號來清除之間的任何內容 vehicleRegistration> –
ant
2010-11-10 15:01:07
是的,這需要您切除的XML塊並打印出車輛ID。 – 2010-11-10 15:23:00
我想刪除車輛註冊節點,其中包含與任何其他車輛註冊節點相同的車輛ID,我該怎麼做呢?僞代碼或代碼會很棒,或者教程或任何可能幫助我完成這些任務的東西。 tnx – ant 2010-11-10 16:10:53