2012-08-02 54 views
2

我有我的工作,爲保持對發送提醒郵件,並在日誌中的最後一次的cron的日誌文件中的客戶端應用程序有:拉線後跟短語

***************** 

app ID: 123/app status: 0/deposit paid: 0/[email protected] 

date created: 2009-03-14 00:00:00 
last updated: 1969-12-31 06:00:00pm 
USING for date comparison: 2009-03-14 12:00:00am 

EXPIRE THIS APP 

我想弄明白如何抓住app ID: 123/app status: 0/deposit paid: 0/[email protected],如果它跟着EXPIRE THIS APP,因爲不是所有的人都會擁有它。

回答

1

你需要小心你的正則表達式不太鬆散,否則貪婪的匹配會導致錯誤的匹配。這是一個良好的開端:

/(app ID: .+?)\n\ndate created: .+?\nlast updated: .+?\nUSING for date comparison: .+?\n\nEXPIRE THIS APP/ 
+0

我只想''grep的-P /(應用ID:+?)\ n \ ndate創建:+ \ n上次更新:??+ \日期比較n使用:。+?\ n \ nEXPIRE這個APP/email_reminders_detailed.log''?因爲這給了我''-bash:在意外標記附近出現語法錯誤'(''' – OpensaurusRex 2012-08-02 18:57:52

+1

@ deth4uall:'('和')'字符在bash中有特殊的含義,所以你需要在這種情況下轉義它們。 – FtDRbwLXw6 2012-08-02 21:21:54