我想用一个shell在日志文件的每一行上用''替换第一个字符'x''脚本。日志文件示例:处理日志以修复格式错误的IP地址?。?。?。x
216.129.119.x [01/Mar/2010:00:25:20 +0100] "GET /etc/....
74.131.77.x [01/Mar/2010:00:25:37 +0100] "GET /etc/....
222.168.17.x [01/Mar/2010:00:27:10 +0100] "GET /etc/....
我的卑微......
#!/bin/bash
echo Starting script...
cd /Users/me/logs/
gzip -d /Users/me/logs/access.log.gz
echo Files unzipped...
echo I'm totally lost here to process the log file and save it back to hd...
exit 0
为什么日志文件IP畸形这样吗?我的网络提供者(1and1)决定不存储IP地址,所以他们用字符'x'替换了最后一个数字。他们告诉我这是'法律'的新要求。我个人认为这是bs,但那会让我们脱离主题。
我想用AWstats处理这些日志文件,所以我需要一个不会格式错误的IP地址。我想用一个更换X,就像这样:
216.129.119.7 [01/Mar/2010:00:25:20 +0100] "GET /etc/....
74.131.77.7 [01/Mar/2010:00:25:37 +0100] "GET /etc/....
222.168.17.7 [01/Mar/2010:00:27:10 +0100] "GET /etc/....
不完美,但我知道,但至少我可以处理的文件,我仍然会得到许多像国家有用的信息,访客数量等等。每个日志文件都是200MB,所以我认为shell脚本是一条可行的路线,因为我可以在Macbook Pro本地快速执行此操作。不幸的是,我对shell脚本知之甚少,而且我的javascript技能不会在这次减少。我感谢您的帮助。
你不应该逃脱点吗? – 2010-03-09 01:15:34
应该有和做过。但我需要双倍转义才能正确显示在帖子中。感谢您的指针 – seejay 2010-03-09 07:07:10
这工作得很好。我确实尝试了所有的解决方案,但是这很快并且直接安装在我的脚本中。它在25秒内完成了240MB的日志。 – skymook 2010-03-09 13:04:22