このログファイルから余分な「ジャンク」を削除するにはどうすればよいですか?

このログファイルから余分な「ジャンク」を削除するにはどうすればよいですか?

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]

今はロードバランサーの男性/女性が見つかりませんでした。 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

おすすめ記事