awk查看域名被访问次数

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
统计以上域名出现的次数
统计每个域名后面数字的和

以下内容部分参考ChatGPT模型:


可以使用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为日志文件名,该命令会输出每个域名被访问的次数和每个域名后面数字的和。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快