로그 추출

로그 추출

문제는 이 명령을 실행할 때 전체 IP 주소가 표시되지 않는다는 것입니다 137.244.209.141. 이 정보를 올바르게 추출하는 방법은 무엇입니까?

무작위 로그:

2016-08-08 14:24:24 [480879] 1bWgnG-00215x-Li ** [email protected] F=<[email protected]> P=<[email protected]> R=lookuphost T=remote_smtp H=mx3.hotmail.com [65.55.33.119]:25 I=[137.244.209.141]:32899 X=TLSv1.2:ECDHE-RSA-AES256-SHA384:256 CV=yes DN="/CN=*.hotmail.com": SMTP error from remote mail server after MAIL FROM:<[email protected]> SIZE=52485: 550 SC-001 (COL004-MC5F14) Unfortunately, messages from 137.244.209.141 weren't sent. Please contact your Internet service provider since part of their network is on our block list. You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors.
2016-08-08 14:24:38 [481047] 1bWgnT-00211m-SS ** [email protected] ([email protected]) <[email protected]> F=<[email protected]> P=<[email protected]> R=lookuphost T=remote_smtp H=mx3.hotmail.com [65.54.188.72]:25 I=[137.244.209.141]:59328 X=TLSv1.2:ECDHE-RSA-AES256-SHA384:256 CV=yes DN="/CN=*.hotmail.com": SMTP error from remote mail server after MAIL FROM:<[email protected]> SIZE=19825: 550 SC-001 (BAY004-MC1F33) Unfortunately, messages from 137.244.209.141 weren't sent. Please contact your Internet service provider since part of their network is on our block list. You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors.

로그에서 데이터를 추출하는 명령:

sed -nE 's,^([-0-9]{10})[^@]* ([^@]*@[^[:space:]]*)[^=]*F=<([^@]*@[^[:space:]]*)>.*SIZE=[^[:space:]]* (... ..-...) .*([[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+).*,\1    \2    \3  \5    \4,p' logs | column -t

산출:

2016-08-08  [email protected]   [email protected]          7.244.209.141  550  SC-001
2016-08-08  [email protected]  [email protected]  7.244.209.141  550  SC-001

답변1

문제는 IP 주소 일치 앞의 항목이 .*탐욕적이어서 문자열에서 가능한 한 많이 일치한다는 것일 수 있습니다.

.*([[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+).*,

.*숫자 경계에서 멈추려면 첫 번째 것을 수정해야 합니다 . 내가 제안 할게무엇이와 같은 것이 작동할 수도 있지만 샘플 데이터에 대해서만 exim4테스트했습니다.

.*[^[:digit:]]

수정된 출력

2016-08-08  [email protected]   [email protected]          137.244.209.141  550  SC-001
2016-08-08  [email protected]  [email protected]  137.244.209.141  550  SC-001

관련 정보