이 로그 파일에서 과도한 "정크"를 제거하려면 어떻게 해야 합니까?

이 로그 파일에서 과도한 "정크"를 제거하려면 어떻게 해야 합니까?

IIS 8.5의 로그 파일에 문제가 있는데 AWstats를 사용하여 문제를 처리하고 싶습니다. 내 IIS 서버가 로드 밸런서 뒤에 있으므로 사용자 지정 로깅 필드 X-FORWARDED-FOR를 추가해야 합니다. 그러나 이로 인해 로그 파일이 약간 지저분해집니다.

2015-04-10 11:34:52 20000004f+OriginalIP+66.249.67.21+ HV-WEB-01 [etc]
2015-04-10 11:35:31 20000004f$OriginalIP+127.0.0.1,+136.243.19.46+ HV-WEB-01 [etc]
2015-04-10 11:35:31 20000004f$OriginalIP+127.0.0.1,+136.243.19.46+ HV-WEB-01  [etc]
2015-04-10 21:05:38 20000004f%OriginalIP+10.10.1.7,+89.221.243.229+ HV-WEB-01 [etc]
2015-04-10 21:05:38 20000004f%OriginalIP+10.10.1.7,+89.221.243.229+ HV-WEB-01 [etc]
2015-04-10 21:06:49 20000004f+OriginalIP+2.150.2.19+ HV-WEB-01 [etc]

지금은 로드 밸런서 남자/여자를 찾을 수 없으므로 이제 "10.20.20.20.20.20.20.20.20.20.20.20.20.20.20.20.20.20.20.20.20.20.20.20.20.20.20.20.20.20.0에 대한 "20000000f+OriginalIP+10.20.30.40+" 항목을 모두 포함하는 검색/바꾸기를 수행하여 신속하고 더러운 문제를 해결하고 싶습니다. 30.40".

업데이트: 처음에 생각했던 것보다 더 많은 변경 사항이 있는 것 같습니다...

답변1

이것은 후행을 제외한 모든 것을 처리합니다 +.

sed 's/ [^+ ]*+*\([0-9.]*\)[,+]*/ \1 /2' <<\IN
2015-04-10 11:35:31 20000004f$OriginalIP+127.0.0.1,+136.243.19.46+ HV-WEB-01 [etc]
2015-04-10 11:35:31 20000004f$OriginalIP+127.0.0.1,+136.243.19.46+ HV-WEB-01  [etc]
2015-04-10 21:05:38 20000004f%OriginalIP+10.10.1.7,+89.221.243.229+ HV-WEB-01 [etc]
2015-04-10 21:05:38 20000004f%OriginalIP+10.10.1.7,+89.221.243.229+ HV-WEB-01 [etc]
IN

인쇄된다...

2015-04-10 11:35:31 127.0.0.1 136.243.19.46+ HV-WEB-01 [etc]
2015-04-10 11:35:31 127.0.0.1 136.243.19.46+ HV-WEB-01  [etc]
2015-04-10 21:05:38 10.10.1.7 89.221.243.229+ HV-WEB-01 [etc]
2015-04-10 21:05:38 10.10.1.7 89.221.243.229+ HV-WEB-01 [etc]

이는 구분 기호로 사용하려는 문자에 필드가 함께 연결되어 있기 때문입니다. 솔직히 말해서 조금 실망스럽습니다. 하지만 고치는 것은 쉽습니다:

sed 's/ [^+ ]*+*\([0-9.]*\)[,+]*/ \1 /2;s/+ / /' <infile

답변2

sed 's/20000000f+OriginalIP+\([0-9.]*\)+/\1/' <yourlog >newlog

이것이 yourlog수정하려는 로그라고 가정합니다. 수정된 로그는 에 저장됩니다 newlog.

관련 정보