在任何行匹配第二个模式的模式之间打印所有行

Bil*_*lly 5 regex bash awk sed

我有一个这样的电子邮件日志文件:

2013-09-11 12:02:08  INFO: ------------------------------
2013-09-11 12:02:08  INFO: Javamail session sending email
2013-09-11 12:02:08  INFO: Session properties: 
2013-09-11 12:02:08  INFO:    com.hof.email.starttime=20130911120208
2013-09-11 12:02:08  INFO:    mail.smtp.auth=true
2013-09-11 12:02:08  INFO:    mail.smtp.connectiontimeout=60000
2013-09-11 12:02:08  INFO:    mail.smtp.host=mailserver
2013-09-11 12:02:08  INFO:    mail.smtp.port=25
2013-09-11 12:02:08  INFO:    mail.smtp.timeout=60000
2013-09-11 12:02:08  INFO:    mail.transport.protocol=smtp
2013-09-11 12:02:08  INFO: From: Support
2013-09-11 12:02:08  INFO: To: Customer
2013-09-11 12:02:08  INFO: Subject: Your Report Data
2013-09-11 12:02:08  INFO: Message ID: <id>
2013-09-11 12:02:09  INFO: Email sent successfully
2013-09-11 12:02:09  INFO: Javamail session ended
2013-09-11 12:02:09  INFO: ------------------------------
Run Code Online (Sandbox Code Playgroud)

如果电子邮件主题与特定字符串匹配,我需要做的是打印整个记录.

也就是说,我认为我想要做的是,Subject = 'Your Report Data'然后在主题匹配之间打印并包括第n次出现'------------------------------'和第1次出现之间的所有行'------------------------------'.

mna*_*gel 2

如果行之间的部分始终相同,则可以grep-A和 一起使用-B