我目前正在運行一個awk腳本來處理一個大的(8.1GB)訪問日誌文件,並且它將永久完成。在20分鐘內,它寫了14MB(1000 + - 500)MB我期望它寫,我不知道我能否以更快的速度處理它。快速處理apache日誌
這裏是awk腳本:
#!/bin/bash awk '{t=$4" "$5; gsub("[\[\]\/]"," ",t); sub(":"," ",t);printf("%s,",$1);system("date -d \""t"\" +%s");}' $1
編輯:
對於非awkers,該腳本讀取每一行,獲取最新信息,它修改的格式實用程序date
識別並調用它來表示日期爲1970年以來的秒數,最後將其作爲.csv文件的一行以及IP返回。
示例輸入: 189.5.56.113 - - [22 /月/ 2010:05:54:55 0100] 「GET(...)」
返回的輸出: 189.5.56.113, 124237889
也許你能描述一下腳本這樣做我們不awkers可以用另一種語言編寫更快的替代品?但從一眼看來,在每個記錄上通過system()產生一個新進程都會非常緩慢。 – 2010-01-22 04:43:27