awk多个数组的使用
#!/bin/bash
awk 'BEGIN{printf "%-60s %-10s %-10s %-10s\n","url","count","time","avg_time"}
$NF ~ /^[-]/{
c1[$]+=$NF
c2[$]++}
END{
for(b in c2) {
for(a in c1)
if(a == b)
printf "%-60s %-10s %-10s %-10s\n", a,c2[b],c1[a],c1[a]/c2[b]
continue
}
}' log.txt
~
注释:
c1统计每个url对应的总响应时间
c2统计每个url对应的总请求个数
每次循环,外围c2的值是不变的,内围c1处于变化中,当c1的url和c2相等时,则输出对应数据,同时跳出此次内循环,开启下一次新循环
获取每个url的平均响应时间
日志格式如下:
2014-06-20 16:47:43 [ resin-port-18057-51:333230 ] - [ INFO ] [url] http://abc.com/list 254
2014-06-20 16:47:43 [ resin-port-18057-51:333230 ] - [ INFO ] [url] http://abc.com/list 254
2014-06-20 16:47:43 [ resin-port-18057-51:333230 ] - [ INFO ] [url] http://abc.com/list 254
2014-06-20 16:47:43 [ resin-port-18057-51:333230 ] - [ INFO ] [url] http://abc.com/list 254
执行效果如下:
url count time avg_time
http://a.9tong.com/plat/active.do 185 31 0.167568
http://a.9tong.com/product/updatePic.do 80 16465 205.812
http://a.9tong.com/product/shopList.do 1133 51663 45.5984
awk多个数组的使用的更多相关文章
- 如何利用shell或者awk二维数组实现9x9乘法表?
第一种:利用shell for循环来实现. for i in `seq 1 9`do for j in `seq 1 9` do if [ $i -ge $j ] then echo -en &quo ...
- awk详解 数组
第1章 awk命令基础 1.1 awk命令执行过程 1.如果BEGIN 区块存在,awk执行它指定的动作. 2.awk从输入文件中读取一行,称为一条输入记录.如果输入文件省略,将从标准输入读取 3.a ...
- awk运用三维数组进行插值获得任意经纬度处的水层沉积层地壳厚度
awk三维数组与插值 目的:给定经纬度,获得该点地下的冰层水层沉积层和地壳的厚度 实现:awk一行命令 下载Crust1.0模型 该数据集的详细介绍见官网. 解压后有几个文件:crust1.vp,cr ...
- [2012-06-18]awk利用关联数组合并记录
问题源起:http://bbs.chinaunix.net/thread-3753784-1-1.html 代码如下 {% capture text %} $awk '{if(!a[$1]){a[$1 ...
- awk操作数组注意几点
awk的数组跟其他程序设计语言的数组有所不同:1.可以直接在awk中定义数组:2.数组元素的初始值为0或空字符串,除非他们被显示的指定初始化:3.数组可以自动扩展:4.都是关联数组,数字下标也会转成字 ...
- 【译】 AWK教程指南 5AWK中的数组
awk程序中允许使用字符串当做数组的下标(index).利用这个特色十分有助于资料统计工作.(使用字符串当下标的数组称为Associative Array) 首先建立一个数据文件,并取名为 reg.d ...
- 【转】awk数组操作
转自:http://blog.csdn.net/wangran51/article/details/9168361 用awk进行文本处理,少不了就是它的数组处理.那么awk数组有那些特点,一般常见运算 ...
- linux awk数组相关操作介绍
用awk进行文本处理,少不了就是它的数组处理.那么awk数组有那些特点,一般常见运算又会怎么样呢.我们先看下以下的一些介绍,结合样例我们会解说下它的不同之处.在 awk 中数组叫做关联数组(assoc ...
- Linux shell awk数组使用
awk中使用数组 一.数组格式 数组是一个包含一系列元素的表. 格式如下: abc[1]="xiaohong" abc[2]="xiaolan" ...
随机推荐
- vim 折叠代码技巧汇总
以下命令输入的方式: 如zo命令,先按z键,松开后按o键即可展开折叠. 一.打开.关闭折叠 zo 展开折叠,只展开最外层的折叠. zO 对所在范围内所有嵌套的折叠点展开,包括嵌套折叠. zc 折叠,只 ...
- 关于NSIS脚本的Demo
这个NSIS脚本是打包公司的整个Release项目工程. 用NSIS编译器编译下就可以了. ; Script generated by the HM NIS Edit Script Wizard. ! ...
- 【剑指offer】面试题36:数组中的逆序对
题目: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数. 思路: 归并排序的合并过程.主要是考虑合并两个有序序列时,计算逆序 ...
- php面向对象编程之构造方法__construct()
php中构造方法是对象创建完成后第一个被对象自动调用的方法.在每个类中都有一个构造方法,如果没有显示地声明它,那么类中都会默认存在一个没有参数且内容为空的构造方法. 构造方法的作用 通常构造方法被用来 ...
- <php>过时方法连接数据库代码
<?php //1.生成链接 $db_connect = mysql_connect("localhost","root","20982239& ...
- 关于js对象引用的小例子
看完下面的代码,相信对js对象引用又有了新的认识,直接上代码: // split()把字符串分割成字符串数组 // reverse() 会改变数组本身,**并返回原数组的引用**.!!!! var a ...
- JVM运行时内存结构
原文转载自:http://my.oschina.net/sunchp/blog/369707 1.JVM内存模型 JVM运行时内存=共享内存区+线程内存区 1).共享内存区 共享内存区=持久带+堆 持 ...
- Struts2中将.action改为.do
struts2中action的默认拓展名是".action",而之前的拓展名一直为".do",工作中需要要把struts2的action拓展名改为". ...
- Java:单例模式的七种写法[转]
第一种(懒汉,线程不安全): 1 public class Singleton { 2 private static Singleton instance; 3 privat ...
- Java 高效 MVC & REST 开发框架 JessMA v3.2.1 即将发布
JessMA(原名:Portal-Basic)是一套功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 ...