我目前正在运行一个 awk 脚本来处理一个大的(8.1GB)访问日志文件,而且它需要永远完成。在 20 分钟内,它写入了我期望它写入的 (1000 +- 500)MB 的 14MB,我想知道我是否可以以某种方式更快地处理它。
这是 awk 脚本:
#!/bin/bash awk '{t=$4" "$5; gsub("[\[\]\/]","",t); sub(":"," ",t);printf("%s,",$1);system("date -d \""t"\" +%s");}' $1
编辑:
对于非 awker,脚本读取每一行,获取日期信息,将其修改为实用程序date
可识别的格式,并调用它以将日期表示为自 1970 年以来的秒数,最后将其作为 .csv 文件的一行返回,以及IP。
示例输入: 189.5.56.113 - - [22/Jan/2010:05:54:55 +0100] "GET (...)"
返回输出: 189.5.56.113,124237889