zoukankan      html  css  js  c++  java
  • awk

    awk 分组统计

    文件aa.txt,格式为:
        时间 url

        2 url1
        8 url3
        2 url2
        3 url1
        4 url3

    要求:在第二列url相同条件下,输出第一列最大值,第一列平均值,第二列出现相同url次数。
    每行输出列格式为:第一列最大值、第一列平均值、第二列出现相同url次数、url
    那么统计结果是:

        8 6 2 url3
        2 2 1 url2
        3 2.5 2 url1

    代码
    平均值:awk '{a[$2]+=$1;b[$2]++}END{for(n in a)print a[n]/b[n]" "n}'
    相同url访问次数:cat aa.txt |sort +1 -2 |uniq -f 1 -c |awk '{print $1 " " $3}'|sort -r -n
    最长访问时间:awk '{max[$2]=max[$2]>$1?max[$2]:$1;number[$2]++;sum[$2]+=$1}END{for (i in max) print max[i], sum[i]/number[i],number[i],i}' OFS=" " infile

    awk打印回车

    ll | awk -F: '{printf $2 " "}'

    awk 的分隔符转义

        awk 的分隔符转义是使用两个反斜线或四个反斜线

        例如要把values(    );   ,   作为分隔符如下:

            awk -F 'values \(|\);|\,'

    awk单引号及换行符表示(转义输出)

        awk 'BEGIN{printf "4712"}'
        47是单引号 12是换行符

        awk拼写sql语句示例:
        tbdate="`date '+%Y%m'`"
        grep ' # ' $ac|grep -v '60.247.21.114' |grep -v 'spider' |grep -v 'bot'|awk -F ' # ' '{print "insert into LOG'$tbdate'(LOGID,VISITIP,VISITTIME,REQ_URL,VISITSTATUS,VISITLL,VISITUA,MOBILEPHONE) values(seq_log'$tbdate'.nextval,47"$1"47,47"$4"47,47"gsub("&"," ",$5)"47,47"$6"47,47"$7"47,47"gsub("&"," ",$9)"47,47"$10"47);"}' >> totalinfo.sql

  • 相关阅读:
    悟透JavaScript(理解JS面向对象的好文章)
    ClassLoader的等级加载机制
    ClassLoader的类结构分析
    如何实现自己的ClassLoader
    Servlet的ClassLoader
    idea远程调试linux下的tomcat
    centos VM 识别U盘
    linux yum 命令
    centos 基本操作(快捷键开户终端,复制,粘贴,yum命令)
    CentOS 配置Apache+Mysql+PHP (yum)与卸载
  • 原文地址:https://www.cnblogs.com/dongzhiquan/p/4132172.html
Copyright © 2011-2022 走看看