regex - grep emails from SMTP mail.log -
let's have textfile smtp log (like below), regex grep extract emails in log file?
jun 4 17:19:12 username postfix/pickup[22643]: c92866601: uid=33 from=<www-data> jun 4 17:19:12 username postfix/cleanup[23012]: c92866601: message-id=<20120604151912.c92866601@username.website.com> jun 4 17:19:12 username postfix/qmgr[2591]: c92866601: from=<www-data@email.com>, size=1314, nrcpt=2 (queue active) jun 4 17:19:13 username postfix/smtp[23014]: c92866601: to=<foobar@gmail.com>, relay=smtp.domain.com[134.96.7.25]:25, delay=0.5, delays=0.132, delays=11/0.01/0.09/0.21, dsn=2.0.0, status=sent (250 2.0.0 q53m4dg6001057 message accepted delivery) jun 4 17:19:13 username postfix/smtp[23014]: c92866601: to=<mail-user@domain.com>, relay=smtp.domain.com[134.96.7.25]:25, delay=0.5, delays=0.132, delays=11/0.01/0.09/0.21, dsn=2.0.0, status=sent (250 2.0.0 q53m4dg6001057 message accepted delivery) jun 4 17:19:13 username postfix/qmgr[2591]: c92866601: removed jun 4 17:19:13 username postfix/pickup[22643]: e146b6601: uid=33 from=<www-data> jun 4 17:19:13 username postfix/cleanup[23012]: e146b6601: message-id=<20120604151913.e146b6601@username.website.com> jun 4 17:19:13 username postfix/qmgr[2591]: e146b6601: from=<www-data@email.com>, size=1327, nrcpt=2 (queue active) jun 4 17:19:14 username postfix/smtp[23014]: e146b6601: to=<mail-user@domain.com>, relay=smtp.domain.com[134.96.7.31]:25, delay=0.43, delays=0.132, delays=11/0.01/0.09/0.21, dsn=2.0.0, status=sent (250 2.0.0 q53m4dg6001057 message accepted delivery) jun 4 17:19:14 username postfix/smtp[23014]: e146b6601: to=<barbar@gmail.com>, relay=smtp.domain.com[134.96.7.31]:25, delay=0.43, delays=0.132, delays=11/0.01/0.09/0.21, dsn=2.0.0, status=sent (250 2.0.0 q53m4dg6001057 message accepted delivery) jun 4 17:19:14 username postfix/qmgr[2591]: e146b6601: removed jun 4 17:19:14 username postfix/pickup[22643]: ef1606601: uid=33 from=<www-data> jun 4 17:19:14 username postfix/cleanup[23012]: ef1606601: message-id=<20120604151914.ef1606601@username.website.com> jun 4 17:19:15 username postfix/qmgr[2591]: ef1606601: from=<www-data@email.com>, size=1329, nrcpt=2 (queue active) jun 4 17:19:15 username postfix/smtp[23014]: ef1606601: to=<mail-user@domain.com>, relay=smtp.domain.com[134.96.7.31]:25, delay=0.42, delays=0.132, delays=11/0.01/0.09/0.21, dsn=2.0.0, status=sent (250 2.0.0 q53m4dg6001057 message accepted delivery) jun 4 17:19:15 username postfix/smtp[23014]: ef1606601: to=<foofoo@gmail.com>, relay=smtp.domain.com[134.96.7.31]:25, delay=0.42, delays=0.132, delays=11/0.01/0.09/0.21, dsn=2.0.0, status=sent (250 2.0.0 q53m4dg6001057 message accepted delivery) jun 4 17:19:15 username postfix/qmgr[2591]: ef1606601: removed
grep -o '[-a-za-z0-9.]*@.[^>]*' filename i considered alphabets, numbers, hyphen , dot valid email name.
if unsure email name convention used in log file, try this:
grep -o '<[^@]*@.[^>]*' filename the above command gives emails prepend <.
Comments
Post a Comment