http://www.etiantian.org/index.html 200
http://www.etiantian.org/1.html 200
http://post.etiantian.org/index.html 300
http://mp3.etiantian.org/index.html 500
http://www.etiantian.org/3.html 200
http://post.etiantian.org/2.html 300
统计以上域名出现的次数
统计每个域名后面数字的和
可以使用awk命令来实现统计域名被访问的次数和每个域名后面数字的和。
统计域名被访问的次数可以使用awk的数组来实现,以域名为键值,出现次数为值,每读取一行记录时,将域名提取出来,如果该域名在数组中不存在,则将该域名添加到数组中,值为1,否则将该域名对应的值加1。
统计每个域名后面数字的和可以使用正则表达式来实现,以每行记录中域名后面的数字之和为结果,每次读取一行记录时,使用正则表达式匹配出数字,将其累加到一个变量中即可。
示例代码如下:
awk '
{
# 统计域名被访问次数
split($1, arr, "/") # 将域名分割成数组
domain = arr[3] # 取出域名
count[domain]++ # 数组中对应的值加1
# 统计每个域名后面数字的和
match($1, /[0-9]+/, arr_num) # 匹配数字
sum[domain] += arr_num[0] # 数字累加到对应的域名下
}
END {
# 输出统计结果
for (domain in count) {
print domain, "被访问次数:", count[domain], "数字之和:", sum[domain]
}
}' access.log
其中,access.log为日志文件名,该命令会输出每个域名被访问的次数和每个域名后面数字的和。