Linux中awk统计ip访问次数

现在有一个文件,数据量大概在200多万条记录,想用shell的awk做统计,文件的格式如下
#关键字#URL#IP地址#
test|123|1
test|123|1
test|123|2
test2|12|1
test2|123|1
test2|123|2
现在想要统计的结果是:查看同一个关键字和URL总的访问的次数,以及多少个不同的IP,输出到一个文件中
SQL的实现就很简单 select keyword ,url ,count(1),count(distinct IP) group by keyword ,url ,但是数据量太大,报表跑不出来,想在shell下面实现,但是我shell不精通,不知道如何快捷的实现,尤其是那个distinct的那个
理想的结果是:
#关键字#URL#不同IP#搜索次数
test      123     2       3
test2    123    1        2
test2     12     1        1




    awk -F"|" '{a[$1" "$2]++;b[$1" "$2" "$3]++}(b[$1" "$2" "$3]==1){++c[$1" "$2]}END{ for (i in a) print i,c[i],a[i]}' file
    test2 123 2 2
    test2 12 1 1
    test 123 2 3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用awk命令统计IP出现次数,具体命令如下: ``` awk '{print $1}' 文件名 | sort | uniq -c ``` 其,$1表示每行的第一个字段,即IP地址;sort命令是用于排序的;uniq -c命令是用于统计每个IP地址出现的次数。执行该命令后,会输出每个IP地址出现的次数。 ### 回答2: awk是一种文本处理工具,可以在使用时利用其功能进行IP出现次数统计。在Linux操作系统,我们可以通过以下步骤来实现awk统计IP出现次数: 1. 通过grep命令搜索IP地址,并将结果输出至文本文件: grep -E -o "([0-9]{1,3}\.){3}[0-9]{1,3}" access.log > ip.txt 其,access.log为需要统计的日志文件,-E表示使用扩展正则表达式进行搜索,-o表示只输出匹配到的内容,用正则表达式匹配IP地址并将结果输出至ip.txt文件。 2. 使用awk命令进行IP出现次数统计awk '{ipcount[$1]++} END {for (x in ipcount) {printf "%-20s %s\n", x, ipcount[x]}}' ip.txt 其,'{ipcount[$1]++}'表示把每个IP地址都存储在ipcount数组,并对每个IP地址的出现次数进行加1操作;'END'表示在读取完整个文件后执行的操作;'{for (x in ipcount)}'表示遍历ipcount数组的所有IP地址;'printf "%-20s %s\n", x, ipcount[x]'表示输出每个IP地址和其出现次数,其%-20s表示占用20个字符位置,以左对齐的方式输出IP地址,%s表示输出IP地址对应的次数。 通过以上两个步骤,我们就可以利用awk命令对IP地址进行出现次数统计。此外,我们还可以通过其他的工具和命令来实现同样的功能。但是,awk命令提供了简单易用的语法,让我们能够快速完成对IP地址出现次数统计,适用于多种情况下的文本处理需求。 ### 回答3: awk是一种非常有用的文本处理工具,可以用来对文件进行各种各样的操作。在统计一个文件出现次数较多的数据时,awk是一个非常好用的工具。本文将详细介绍如何使用awk统计ip出现的次数awk的简介 awk是一种用于文本处理的编程语言,它可以查找、处理并修改文本文件的行和列。使用awk时,它会依次处理输入文件的每一行,根据用户指定的匹配条件,进行相应的操作,最后输出结果。 统计ip地址出现次数的方法 在统计ip地址出现次数时,我们需要将文件ip地址提取出来,然后按照出现次数进行统计。下面是使用awk进行ip地址统计的步骤: 1、打开终端,切换到目标文件所在的目录下。 2、使用以下命令来统计ip地址出现的次数awk '{print $1}' filename | sort | uniq -c 3、其,上述命令,filename是要统计的文件名,$1表示输出每一行的第一个单词,也就是ip地址。使用sort命令进行排序,然后使用uniq命令统计每个ip地址出现的次数。 4、最后输出的结果将会列出每个ip地址以及它出现的次数。 使用awk统计ip地址出现次数是一种非常简单的方法,不需要进行复杂的处理。只需要几行命令就可以轻松地解决这个问题。因此,如果您需要对一个文件ip地址出现次数进行统计,不妨试试上述方法看看能不能帮助您解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值