zoukankan      html  css  js  c++  java
  • Shell --awk

    1、awk命令格式:

    awk [options] 文件名

    options:

    -F fs:指定分割数据的分隔符

    -f file:指定程序的脚本文件

    例:awk -F: '{print $1}' /etc/passwd

         awk –f script /etc/passwd

    script:代表的是passwd文件的处理语句

    像{print $1} 都可用放在script文件中

    2、BEGIN、END

    awk -F: 'BEGIN{num=0}{print $1;num++}END{print num}' /etc/passwd

    BEGIN在读取数据之前执行,END在读完数据之后执行。

    将passwd文件以“:”分割开,然后打印每行的第一个元素。

    3、内置变量

    FS:Field Seperator, 输入时的字段分隔符
    # awk 'BEGIN{FS=":"}{print $1,$7}' /etc/passwd
    RS:Record Seperator, 输入行分隔符
    OFS: Output Field Seperator, 输出时的字段分隔符;
    ORS: Outpput Row Seperator, 输出时的行分隔符;
    NF:Numbers of Field,字段数
    NR:Numbers of Record, 行数;所有文件的一并计数;
    FNR:行数;各文件分别计数;

    用法:

    awk '{print FNR ,$1}' gradt.txt  行号

    4、匹配符

    例:

    awk '/110.52.250.126/  {print $1}' access_2013_05_30.log   所有包含110.52.250.126元素的行

    awk ' ($1 ~ /110.52.250.126/)  {print $1}' access_2013_05_30.log  所有第一个元素是110.52.250.126元素的行

    awk ' ($1 !~ /110.52.250.126/)  {print $1}' access_2013_05_30.log 所有第一个元素不是110.52.250.126元素的行



    5:网站访问量日志分析

    1):首先去掉一些图片、js、css和一些无效的网页请求

    awk '($7 !~ /.jpg|.png|.css|.js|.gif/    &&  $9 ~ /200/){print}' access_2013_05_30.log > clean_2013_05_30.log

    将筛选出来的数据重定向到clean_2013_05_30.log日志文件中

    2):统计clean_2013_05_30.log文件中的总数据量(pv数)

    awk 'BEGIN{pv=0} {pv++} END{print pv}' clean_2013_05_30.log

    3):统计不同ip访问的次数(uv数)

    awk '{print $1}' access_2013_05_30.log|sort -n|uniq -c|wc -l

    注意:需要先排序再去重 这样才正确。否则uniq去重只会把挨着相等的去掉。

    所以先排序再去重,然后在统计数量

    注解:awk '{print $1}' access_2013_05_30.log|sort -n|head –10

    可以用head取出访问量比较大的ip,看访问次数判断是否是爬虫

  • 相关阅读:
    事务
    约束条件(CONSTRAINTS)
    算术运算符
    数据查询、修改指令
    iview-admin使用webpack打包之后发布报Uncaught SyntaxError: Unexpected token <
    使用localhost可以访问,但使用本地ip+端口号无法访问
    datatables里面的search怎么去掉?
    删除操作之后的确定或取消弹出框?
    jquery实现上传图片本地预览效果
    怎么改变title属性的样式?
  • 原文地址:https://www.cnblogs.com/tzq9308/p/5078417.html
Copyright © 2011-2022 走看看