shell数组for循环
第一种:
#!/bin/sh
array=(1 2 3)
for i in ${array[*]}
 do
   echo $i
done
 
第二种:
#!/bin/sh
array=(1 2 3)
for ((i=0;i<${#array[*]};i++))
 do
   echo ${array[i]}
done
 
shell数组小结:
一.定义
静态数组:array=(1 2 3)
动态数组:array=($(ls))
二.打印
${array[*]}或${array[@]}  打印所有元素
${#array[*]}或${#array[@]}  打印数组长度
${array[i]}  打印单个元素  i是下标
 
sum++ 的意思是计算总的访问条目数:
[root@fuzhou89 2017-01-09]#  zcat 2017-01-09-12*|awk '{print $7}'|awk -F "/" '{print $3}' |awk '{a[$1]++;sum++}END{for(i in a)print i,100*a[i]/sum "%",a[i]" counts"}'|sort -rn -k3|head
mh.tiancity.com 51.5872% 165788 counts
w.tancdn.com 18.0503% 58009 counts
i.l.inmobicdn.net 13.6327% 43812 counts
book.img.ireader.com 6.99683% 22486 counts
kyfw.12306.cn 5.19986% 16711 counts
comic.img.ireader.com 0.923846% 2969 counts
i.ugc.corp3g.cn 0.536135% 1723 counts
img6.uuserv30.net 0.37962% 1220 counts
book.d.ireader.com 0.285337% 917 counts
bbs.res.flyme.cn 0.238663% 767 counts
 
统计url排名前十的url:
[root@chundianxin103 2017-05-17]# zcat 2017-05-17-11*|awk '{a[$7]++}END{for(i in a)print i" "a[i]}'|sort -rnk2|head
http://cdn.live.xunlei.com/cdn/data/1m/xl9.js 147257
http://pic5.qiyipic.com/common/20170310/c2e7c1252aa640a4a3db004f1e470f1b.png 15175
http://screenshot.dwstatic.com/fjp/lic_-8813209714620956024?imageview/0/w/180/h/136 5902
http://pic5.qiyipic.com/common/20170513/cc26f8a3972e403dbce28afedb337279.jpg 5636
http://d.ifengimg.com/w750_h350/p2.ifengimg.com/cmpp/2017/05/17/20c46d79446469eedf42614c09c33ed5_size499_w750_h350.jpeg 5541
http://s.autoimg.cn/www/common/images/icon-new.png? 5529
http://screenshot.dwstatic.com/fjp/lic_9064017321729548390?imageview/0/w/370/h/282 4298
http://pic5.qiyipic.com/common/lego/20170515/8565c6c54e1341f69fc0cfece57e6494.jpg 4280
http://pic5.qiyipic.com/image/20160914/da/47/v_110943644_m_601_m1_120_160.jpg 4279
http://pic5.qiyipic.com/image/20150312/65/80/da/a_50133980_m_601_m2_120_160.jpg 4161
统计访问ip排名前十的IP:
[root@chundianxin103 2017-05-17]# zcat 2017-05-17-11*|awk '{a[$1]++}END{for(i in a)print a[i],i}'|sort -rn|head
16212 123.172.168.110
7154 123.172.205.156
4326 222.169.185.251
4202 222.168.86.66
3939 36.48.166.159
3649 222.169.251.202
3305 222.168.86.67
3290 222.168.19.248
3056 222.168.7.38
3041 123.172.184.191
统计状态码:
[root@chundianxin103 2017-05-17]# zcat 2017-05-17-11*|awk '{a[$9]++}END{for(i in a)print a[i],i}'|sort -rn|head             
1849400 200
174733 304
6933 301
5965 404
4997 0
4162 302
3858 206
963 503
807
768 %Hs
统计404的url:
[root@chundianxin103 2017-05-17]# zcat 2017-05-17-11*|awk '$9==404{print $7}'|sort|uniq -c|sort -rn|head
    597 http://res.qxz.37wan.com/t1/assets/model/wing/10031/mid/ridemove-2.cvt?
    446 http://res.aojian.game2.com.cn/eflashdir121227/res/data/avatar/effect/eid10457.tse
    267 http://res.qxz.37wan.com/t1/assets/model/wing/10031/mid/rideattack4-3.cvt?
    249 http://res.qxz.37wan.com/t1/assets/model/wing/10031/mid/rideattack2-4.cvt?
    192 http://res.qxz.37wan.com/t1/assets/model/wing/10031/mid/rideattack2-2.cvt?
    174 http://dhsz.cdn.gop.yy.com/cdn/0/avatar/weapon/9210002/mounts/.7t?r=0
    164 http://static.xiyou.cntv.cn/2013/themes/common/css/style2013.css?
    162 http://res.longc.37wan.com/dwcq_00192/assets/images/dropRedPacket/limit.png
    155 http://img3.hdletv.com/https://img2-lemall.letvimg.com//wap/20170424/default/16080459777120959
统计11:00-11:04时间段5分钟内,状态码为404的url:
[root@chundianxin103 2017-05-17]# zcat 2017-05-17-11*|awk '$4~/2017:11:[0-4]/ && $9==404{print $7}'|sort|uniq -c|sort -rn|head
    597 http://res.qxz.37wan.com/t1/assets/model/wing/10031/mid/ridemove-2.cvt?
    398 http://res.aojian.game2.com.cn/eflashdir121227/res/data/avatar/effect/eid10457.tse
    267 http://res.qxz.37wan.com/t1/assets/model/wing/10031/mid/rideattack4-3.cvt?
    249 http://res.qxz.37wan.com/t1/assets/model/wing/10031/mid/rideattack2-4.cvt?
    192 http://res.qxz.37wan.com/t1/assets/model/wing/10031/mid/rideattack2-2.cvt?
    154 http://res.longc.37wan.com/dwcq_00192/assets/images/dropRedPacket/limit.png
    148 http://dhsz.cdn.gop.yy.com/cdn/0/avatar/weapon/9210002/mounts/.7t?r=0
    136 http://static.xiyou.cntv.cn/2013/themes/common/css/style2013.css?
    131 http://img3.hdletv.com/https://img2-lemall.letvimg.com//wap/20170424/default/16080459777120959
统计该时间段内的域名的总带宽:
[root@chundianxin103 2017-05-17]# zcat 2017-05-17-11*|awk '{print $7,$10}'|awk -F '[/ ]+' '/^http/{print $2,$NF}'|awk '{sum+=$2}END{print sum}'
72400490649
统计该时间段内的各个域名的带宽量:
[root@chundianxin103 2017-05-17]# zcat 2017-05-17-11*|awk '{print $7,$10}'|awk -F '[/ ]+' '/^http/{print $2,$NF}'|awk '{a[$1" "$2]++}END{for(i in a)print i}'|sort -rnk2|head
gcdl2.nearme.com.cn 531400529                
storedl3.nearme.com.cn 427488722
storedl3.nearme.com.cn 339729119
gcdl0.nearme.com.cn 299357279
upfiles.3304399.net 293824785
gcdl2.nearme.com.cn 287142326
apk.wsdl.vivo.com.cn 272977794
gcdl2.nearme.com.cn 241730669
gcdl2.nearme.com.cn 241730668
storedl5.nearme.com.cn 222720000
注释:这个单位是bps,比特位每秒,换算成Mbps ,/1024/1024

Mbps是Million bits per second的缩写,Mbps=Mbit/s即兆比特每秒,它的意思是时间内传输数据的平均比特数,其单位是比特每秒(bps),或千比特每秒(Kbps),或兆比特每秒(Mbps)。

换算单位关系为:1Kbps=1024bps,1Mbps=1024*1024bps(有时为了计算简单记作1Kbps=1000bps,1Mbps=1000000bps)。数据传输速率反映了终端设备之间的信息处理能力,它是一段时间的平均值,数值越大,说明速度越快。
 
 
############经典案例##################
我的日志格式为:
09:55:54: ERROR1 /tmp/error/log.3 50 times
09:56:09: ERROR1 /tmp/error/log.14 50 times
10:56:12: ERROR1 /tmp/error/log.14 100 times
10:56:23: ERROR2 /tmp/error/log.5 50 times
11:56:26: ERROR2 /tmp/error/log.1 50 times
11:56:27: ERROR2 /tmp/error/log.5 100 times
15:56:29: ERROR3 /tmp/error/log.1 100 times
15:56:32: ERROR3 /tmp/error/log.1 150 times
16:56:33: ERROR4 /tmp/error/log.6 50 times
16:56:36: ERROR4 /tmp/error/log.6 100 times
16:56:40: ERROR4 /tmp/error/log.12 50 times

我想统计某时段某种类型的告警次数,时段取第一列第一个:之前的字符,告警类型取第二列,值不定,后面的字符可以不管。我想输出结果为:
09时ERROR1告警为2条。
10时ERROR1告警为1条。
10时ERROR2告警为1条。
11时ERROR2告警为2条。
15时ERROR3告警为2条。
16时ERROR4告警为3条。

 
Answer
 
awk -F'[: ]+' '{a[$1"时"$4]++}END{for(i in a)print i"告警为"a[i]"条."}' ufile

三剑客之awk数组实战的更多相关文章

  1. 详解Linux三剑客之awk

    第一篇 awk简介与表达式实例 一种名字怪异的语言 模式扫描和处理,处理数据和生成报告. awk不仅仅是linux系统中的一个命令,而且是一种编程语言:它可以用来处理数据和生成报告(excel):处理 ...

  2. Linux实战教学笔记18:linux三剑客之awk精讲

    Linux三剑客之awk精讲(基础与进阶) 标签(空格分隔): Linux实战教学笔记-陈思齐 快捷跳转目录: * 第1章:awk基础入门 * 1.1:awk简介 * 1.2:学完awk你可以掌握: ...

  3. 3.awk数组详解及企业实战案例

    awk数组详解及企业实战案例 3.打印数组: [root@nfs-server test]# awk 'BEGIN{array[1]="zhurui";array[2]=" ...

  4. (转)awk数组详解及企业实战案例

    awk数组详解及企业实战案例 原文:http://www.cnblogs.com/hackerer/p/5365967.html#_label03.打印数组:1. [root@nfs-server t ...

  5. (转)不看绝对后悔的Linux三剑客之awk实战精讲

    原文:http://blog.51cto.com/hujiangtao/1923930 一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介 awk不仅仅时linux系统中 ...

  6. shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计

    shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计 shell中的数组的用法: shell数组中的下标是从0开始的 array=("Allen" & ...

  7. awk数组详解、实战

    1.其它编程语言数组的下标一般从0开始,awk中数组下标默认从1开始,也可以从0开始设置: awk 'BEGIN{huluwa[0]="大娃";huluwa[1]="二娃 ...

  8. Linux三剑客之awk精讲(基础与进阶)

    第1章 awk基础入门 要弄懂awk程序,必须熟悉了解这个工具的规则.本实战笔记的目的是通过实际案例或面试题带同学们熟练掌握awk在企业中的用法,而不是awk程序的帮助手册. 1.1 awk简介 一种 ...

  9. shell编程系列19--文本处理三剑客之awk中的字符串函数

    shell编程系列19--文本处理三剑客之awk中的字符串函数 字符串函数对照表(上) 函数名 解释 函数返回值 length(str) 计算字符串长度 整数长度值 index(str1,str2) ...

随机推荐

  1. 3.环境搭建-Hadoop(CDH)集群搭建

    目录 目录 实验环境 安装 Hadoop 配置文件 在另外两台虚拟机上搭建hadoop 启动hdfs集群 启动yarn集群 本文主要是在上节CentOS集群基础上搭建Hadoop集群. 实验环境 Ha ...

  2. 解决Sophos UTM 9防火墙上的“根分区填满”问题

    Resolving 'Root Partition Is Filling Up' Issue on Sophos UTM Firewall 收到“Sophos UTM 9”防火墻的“根分區填满”问题的 ...

  3. hdu 5389 Zero Escape (dp)

    题目:http://acm.hdu.edu.cn/showproblem.php? pid=5389 题意:定义数根:①把每一位上的数字加起来得到一个新的数,②反复①直到得到的数仅仅有1位.给定n,A ...

  4. hdu1827之强联通

    Summer Holiday Time Limit: 10000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  5. CSDN站点系统升级公告

    各位尊敬的CSDN用户: 你们好. CSDN站点将于2015年12月17日23时-12月18日08时进行系统升级维护,升级维护期间,CSDN站点将会受到影响.可能会导致博客.下载频道及站点其它功能无法 ...

  6. 大牛blog汇总

    系列专题的文件夹 01. Java String系列 (共3篇) 02. Java异常系列 (共3篇) 03. Java 时间日期系列 (共7篇) 04. java io系列 (共26篇) 05, J ...

  7. Linux基础(3)- 正文处理命令及tar命令、vi编辑器、硬盘分区、格式化及文件系统的管理和软连接、硬连接

    一.正文处理命令及tar命令 1)  将用户信息数据库文件和组信息数据库文件纵向合并为一个文件1.txt(覆盖) 2)  将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件2.txt(追加) ...

  8. 我的vim插件列表

    一.正在使用的插件 1. NERD tree   文件浏览 2. bufexplorer  buffer 浏览 3. mru.vim   最近使用的文件浏览 4. ctrlp.vim  文件模糊搜索, ...

  9. POJ 3580(SuperMemo-Splay区间加)[template:Splay V2]

    SuperMemo Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 11384   Accepted: 3572 Case T ...

  10. shiro框架的使用

    1.配置二级缓存 <ehcache updateCheck="false" name="shiroCache"> <defaultCache ...