2012-08-02 27 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