awk - Print chunk of lines between matching patterns -
i have bunch of email archives looks pattern below. trying separate emails separated starting from: , ending pattern from: .
from: bikram suwal veekram@gmail.com to: john doe johndoe@gmail.com subject: greetings date: 04/05/1990 10:30 pm hello. world test email. from: bikram suwal veekram@gmail.com to: john doe johndoe@gmail.com subject: new greetings date: 04/05/1990 10:30 pm yet test email using awk, awk '/from/{p=1} p; /date/{exit}' text.txt. gives:
from: bikram suwal veekram@gmail.com to: john doe johndoe@gmail.com subject: greetings date: 04/05/1990 10:30 pm how can possibly modify awk command get:
from: bikram suwal veekram@gmail.com to: john doe johndoe@gmail.com subject: greetings date: 04/05/1990 10:30 pm hello. world test email. thanks in advance
if not bothered newline char
$ awk '/^from:/{count++} count==1' infile $ awk -v mail_no=1 '/^from:/{count++}count==mail_no; count>mail_no{exit}' infile examples :
$ awk '/^from:/{count++} count==1' infile from: bikram suwal veekram@gmail.com to: john doe johndoe@gmail.com subject: greetings date: 04/05/1990 10:30 pm hello. world test email. $ awk '/^from:/{count++} count==2' infile from: bikram suwal veekram@gmail.com to: john doe johndoe@gmail.com subject: new greetings date: 04/05/1990 10:30 pm yet test email to remove trailing newline char, prefer use tac below
$ awk -v mail_no=1 '/^from:/{count++}count==mail_no;count>mail_no{exit} ' infile | tac | awk 'nf{found=1}found' | tac from: bikram suwal veekram@gmail.com to: john doe johndoe@gmail.com subject: greetings date: 04/05/1990 10:30 pm hello. world test email. input :
$ cat infile from: bikram suwal veekram@gmail.com to: john doe johndoe@gmail.com subject: greetings date: 04/05/1990 10:30 pm hello. world test email. from: bikram suwal veekram@gmail.com to: john doe johndoe@gmail.com subject: new greetings date: 04/05/1990 10:30 pm yet test email from: bikram suwal veekram@gmail.com to: john doe johndoe@gmail.com subject: new greetings date: 04/05/1990 10:30 pm yet test email
Comments
Post a Comment