我想用一個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