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
- 详解Linux三剑客之awk
第一篇 awk简介与表达式实例 一种名字怪异的语言 模式扫描和处理,处理数据和生成报告. awk不仅仅是linux系统中的一个命令,而且是一种编程语言:它可以用来处理数据和生成报告(excel):处理 ...
- Linux实战教学笔记18:linux三剑客之awk精讲
Linux三剑客之awk精讲(基础与进阶) 标签(空格分隔): Linux实战教学笔记-陈思齐 快捷跳转目录: * 第1章:awk基础入门 * 1.1:awk简介 * 1.2:学完awk你可以掌握: ...
- 3.awk数组详解及企业实战案例
awk数组详解及企业实战案例 3.打印数组: [root@nfs-server test]# awk 'BEGIN{array[1]="zhurui";array[2]=" ...
- (转)awk数组详解及企业实战案例
awk数组详解及企业实战案例 原文:http://www.cnblogs.com/hackerer/p/5365967.html#_label03.打印数组:1. [root@nfs-server t ...
- (转)不看绝对后悔的Linux三剑客之awk实战精讲
原文:http://blog.51cto.com/hujiangtao/1923930 一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介 awk不仅仅时linux系统中 ...
- shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计
shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计 shell中的数组的用法: shell数组中的下标是从0开始的 array=("Allen" & ...
- awk数组详解、实战
1.其它编程语言数组的下标一般从0开始,awk中数组下标默认从1开始,也可以从0开始设置: awk 'BEGIN{huluwa[0]="大娃";huluwa[1]="二娃 ...
- Linux三剑客之awk精讲(基础与进阶)
第1章 awk基础入门 要弄懂awk程序,必须熟悉了解这个工具的规则.本实战笔记的目的是通过实际案例或面试题带同学们熟练掌握awk在企业中的用法,而不是awk程序的帮助手册. 1.1 awk简介 一种 ...
- shell编程系列19--文本处理三剑客之awk中的字符串函数
shell编程系列19--文本处理三剑客之awk中的字符串函数 字符串函数对照表(上) 函数名 解释 函数返回值 length(str) 计算字符串长度 整数长度值 index(str1,str2) ...
随机推荐
- 3.环境搭建-Hadoop(CDH)集群搭建
目录 目录 实验环境 安装 Hadoop 配置文件 在另外两台虚拟机上搭建hadoop 启动hdfs集群 启动yarn集群 本文主要是在上节CentOS集群基础上搭建Hadoop集群. 实验环境 Ha ...
- 解决Sophos UTM 9防火墙上的“根分区填满”问题
Resolving 'Root Partition Is Filling Up' Issue on Sophos UTM Firewall 收到“Sophos UTM 9”防火墻的“根分區填满”问题的 ...
- hdu 5389 Zero Escape (dp)
题目:http://acm.hdu.edu.cn/showproblem.php? pid=5389 题意:定义数根:①把每一位上的数字加起来得到一个新的数,②反复①直到得到的数仅仅有1位.给定n,A ...
- hdu1827之强联通
Summer Holiday Time Limit: 10000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- CSDN站点系统升级公告
各位尊敬的CSDN用户: 你们好. CSDN站点将于2015年12月17日23时-12月18日08时进行系统升级维护,升级维护期间,CSDN站点将会受到影响.可能会导致博客.下载频道及站点其它功能无法 ...
- 大牛blog汇总
系列专题的文件夹 01. Java String系列 (共3篇) 02. Java异常系列 (共3篇) 03. Java 时间日期系列 (共7篇) 04. java io系列 (共26篇) 05, J ...
- Linux基础(3)- 正文处理命令及tar命令、vi编辑器、硬盘分区、格式化及文件系统的管理和软连接、硬连接
一.正文处理命令及tar命令 1) 将用户信息数据库文件和组信息数据库文件纵向合并为一个文件1.txt(覆盖) 2) 将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件2.txt(追加) ...
- 我的vim插件列表
一.正在使用的插件 1. NERD tree 文件浏览 2. bufexplorer buffer 浏览 3. mru.vim 最近使用的文件浏览 4. ctrlp.vim 文件模糊搜索, ...
- POJ 3580(SuperMemo-Splay区间加)[template:Splay V2]
SuperMemo Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 11384 Accepted: 3572 Case T ...
- shiro框架的使用
1.配置二级缓存 <ehcache updateCheck="false" name="shiroCache"> <defaultCache ...