`
notedd
  • 浏览: 20568 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

awk统计广告点击与独立ip数

阅读更多

每天生成当天日志,按年月存放 如:/2010/6/20_enter.log

日志格式如下:第五列是ip的数字形式

22973,42,3795,218.1.122.166,3657530022,2010-06-17 00:00:00
22402,48,3171,220.248.176.230,3707285734,2010-06-17 00:00:00
22973,42,3795,221.230.17.1,3722842369,2010-06-17 00:00:01
23007,53,4133,58.60.5.146,977012114,2010-06-17 00:00:01
22973,42,3795,113.12.191.122,1896660858,2010-06-17 00:00:01
22873,49,3670,221.200.38.128,3720881792,2010-06-17 00:00:02
22973,42,3795,61.175.135.106,1034913642,2010-06-17 00:00:02
21083,18,1454,125.118.162.87,2104926807,2010-06-17 00:00:02
22973,42,3795,59.50.95.190,993157054,2010-06-17 00:00:02

 

现需要按前三项分组统计出出现次数和独立ip数,形如:

20738_29_1033,3,2
20406_12_610,9,9
22838_49_3631,5,5
21313_45_2197,1,1
20135_14_252,1,1

 

编写awk脚本semstat.awk如下:

{
  group = sprintf("%s_%s_%s",$1,$2,$3)
  sum[group]++
  if(flag[group,$5]!=1)
  {b[group]++}
  flag[group,$5]=1;
}
END{ 
  for(i in sum){
    printf("%s,%d,%d\n",i,sum[i],b[i])
  }
}

 

编写sh脚本semstat.sh用于定时来执行:

#!/bin/sh
semdir=/username#目录
log=${semdir}/semlog.log#日志文件
awkfile=${semdir}/semstat.awk#awk文件

year=$(date +%Y)
month=$(date +%m)
day=$(date +%d)
starttime=$(date +%s)

temp=$(echo ${month}|cut -c 1)
temp1=$(echo ${month}|cut -c 2)
if [ $temp = "0" ];
then 
  month=$temp1
fi

temp=$(echo ${day}|cut -c 1)
temp1=$(echo ${day}|cut -c 2)
if [ $temp = "0" ];
then 
  day=$temp1
fi

logfile=$semdir/$year/$month/${day}_enter.log
csvfile=$semdir/$year/$month/${day}.csv
echo "$(date +%F) $(date +%T) logfile is ${logfile}" >> $log
echo "$(date +%F) $(date +%T) csvfile is ${csvfile}" >> $log

if [ -f $logfile ];
then
  gawk -F "," -f $awkfile $logfile > $csvfile
  echo "$(date +%F) $(date +%T) ${logfile} deal ok" >> $log
else
  echo "$(date +%F) $(date +%T) ${logfile}  not exist" >> $log
fi

 

 赋予semstat.sh执行权限 如:chmod 755 semstat.sh

 

./semstat.sh 执行可以得到csv文件。

 

 

0
0
分享到:
评论

相关推荐

    Sed与Awk (中文版)

    **sed和awk工具的介绍与应用** sed和awk是广泛应用于UNIX系统中的两个文本处理工具。sed是流编辑器(stream editor)的缩写,而awk则是一种编程语言,得名于其三位开发者:Alfred Aho、Peter J. Weinberger和Brian ...

    linux-利用tcpdump抓包和awk处理写的基于端口的流量统计

    这段命令首先使用tcpdump捕获特定端口的数据包,然后awk会根据协议类型(IP或UDP)计算每个源端口($4)和目标端口($6)的总字节数($5)。最后,awk会在循环中输出每个端口的流量统计结果。 然而,如果你需要长...

    awk详细用法小结awk awk

    #### 一、awk简介与版本 awk是一种强大的文本分析工具,主要用于Linux/Unix系统下的数据处理与报告生成。它支持正则表达式、模式匹配和复杂的文本处理功能,是系统管理员和程序员进行数据处理的利器。在Linux/Unix...

    Sed与awk_中英文高清版

    《Sed与Awk》是IT领域中关于文本处理的经典之作,主要讲解了两种强大的命令行工具:Sed(流编辑器)和Awk(数据处理语言)。这两款工具在Linux和Unix系统中广泛使用,尤其适用于数据提取、转换、报告生成等任务。 ...

    SED与AWK 高清第三版

    《SED与AWK 高清第三版》是一本专注于Linux系统中强大文本处理工具sed和awk的教程。在Linux环境中,sed和awk是不可或缺的工具,它们能够高效地处理大量文本数据,进行搜索、替换、格式化等操作,极大地提高了运维...

    Sed与awk第二版(高清版).pdf

    根据提供的文件信息,我们可以从《Sed与awk第二版(高清版).pdf》这一资源中提炼出关于Sed和awk这两个强大的文本处理工具的相关知识点。虽然免责声明部分并未提供具体的技术内容,但我们可以通过书籍的标题、描述及...

    awk参考资料下载awk

    - `-mf nnn` 和 `-mr nnn`: 分别限制内存分配和最大记录数,仅在某些awk版本中可用。 - `-W`选项:用于开启或关闭特定的行为模式,例如兼容模式、版权信息、帮助信息、警告等。 **模式和操作** awk脚本由模式和...

    awk实例详解——Unix下awk的使用

    `awk`提供了许多内置变量,如`NF`表示当前行的字段数,`NR`表示已读取的记录数(行数),`FNR`则是在当前文件中的记录数。 **4. 模式匹配** `awk`的模式可以是正则表达式,例如`/pattern/`,也可以是逻辑表达式,如...

    awk入门到精通.pdf

    awk还具备管道功能,能够与其他Shell命令交互,处理数据,这使得awk程序能高效利用系统资源。 awk的常见应用场景是编写小型工具,它们解决特定问题,通过Shell的管道功能组合起来解决更大问题。这种解题方式允许...

    awk教程-awk教程.rar

    安装后,awk命令可以直接在命令行中调用,操作方式与Unix/Linux系统下相同。 ### 6. 学习资源推荐 - **《每天学习一个命令:awk 处理文本》**:这本书可能包含了awk的基础操作和实例,适合初学者入门。 - **《awk ...

    Sed与awk第二版(中文高清版)

    根据书籍的内容,读者还可以了解到Sed与awk的版本更新、新特性以及如何将这些工具与其他命令结合使用,提高文本处理的效率。例如,sed经常与grep、sort、uniq等其他文本处理命令一起使用,以达到更复杂的数据处理...

    AWK实例教程 AWK实例教程中文版

    - **高级应用案例**:通过构建复杂的AWK脚本,可以实现诸如数据分析、统计报告生成等高级功能。 综上所述,AWK不仅是一种功能强大的文本处理工具,也是一种易于学习且功能丰富的脚本语言。掌握了AWK的基本使用方法...

    awk set 使用手册

    七、awk与set实际应用 在实际工作中,`set`概念可以用于过滤、转换、统计等任务。例如,你可以设置一个变量`pattern`来存储过滤条件,然后在每个记录上检查这个条件: ```awk BEGIN { pattern = "Error" } $0 ~ ...

    MOXA_AWK-3121配置方法及要点说明

    MOXA AWK-3121 是一种工业级无线设备,具有 web 功能配置、IP 网络参数设置、工作模式选择、功率增强等特点。本文将详细介绍 MOXA AWK-3121 的配置方法及要点说明。 一、Web 功能配置 MOXA AWK-3121 的 web 功能...

    awk使用手册

    - 结合循环和条件语句,awk可以用来生成统计报告。 4. **文本格式化**: - awk可以用于格式化输出,比如调整字段宽度、添加列标题等。 5. **系统监控**: - awk可以配合其他工具,用于监控系统状态,如CPU使用...

    awk入门级教材awk入门awk入门

    ### awk入门级教材知识点详解 #### 一、awk简介 **awk** 是一种强大的文本处理工具,主要用于在一组文件上查找符合特定模式的行或字段,并执行相应的操作。它简化了数据选择和转换的过程,使其变得更为直观和简单...

Global site tag (gtag.js) - Google Analytics