awk相关函数

截取子串:Mysub=substr(myarry[1],startpos,maxlen) #startpos,起始字符位置; #maxlen,抽取字符最大长度。

字符串匹配:match(Myarray[1],/you/),RSTART,RLENGTH #使用RSTART,RLENGTH返回第一个匹配的位置,以及占据的字符跨度

arr[ip]=ip访问次数++

-gr 按照数值降序排序

  • awk '/.*:3306.*ESTABLISHED.*/{
      #截取ip字符串
      ipstr=substr($5,1,match($5,":")-1)
      #ip字符串作为数组下标,数组的值作为次数的统计,初始值为1
      if(arr[ipstr]==0){
          arr[ipstr]=1
      }else{#第二次以上访问就直接将次数累加
          arr[ipstr]=arr[ipstr]+1
      }
    }
    END{
      #输出
      for(i in arr){
          print arr[i]" "i
      }
    }
    '|sort -gr #按照数值排序