当前位置:  技术问答>linux和unix

请教:如何用shell实现指定log文件(比如a.log)中的指定内容(SQL_ID和SQL的处理部分)的收集

    来源: 互联网  发布时间:2016-09-15

    本文导语:  目的:收集指定Log文件里会多次出现以下的SQL_ID和SQL的处理部分并且统计各个SQL_ID和SQL的处理部分的出现次数。 (例:指定Log文件的一部分) SQL_ID  0saby2c3v1z0u, child number 0 ------------------------------------- -- SELECT /*...

目的:收集指定Log文件里会多次出现以下的SQL_ID和SQL的处理部分并且统计各个SQL_ID和SQL的处理部分的出现次数。

(例:指定Log文件的一部分)
SQL_ID  0saby2c3v1z0u, child number 0
-------------------------------------
-- SELECT /* rn.kdbs.action.search.pre.CompanyAction#index */  DBMS_RANDOM.VALUE RANDOM

上面的例子里SQL_ID=0saby2c3v1z0u、SQL的处理部分rn.kdbs.action.search.pre.CompanyAction#index
其中SQL_ID 规定是13位, SQL的处理部分形式也一定是 SELECT /* SQL的处理部分*/ 。而且SQL的处理部分的行一定在SQL_ID的下面两行比如某SQL_ID是100行,那该SQL_ID对应的处理部分肯定出现在102行。
指定Log文件里,一个SQL_ID和SQL的处理部分可能出现1次,也可能重复多次出现。 


最终我希望把各个SQL_ID和该SQL的处理部分,以及它们出现的次数用以下的方式输出。
具体输出成txt文件还是csv文件还没考虑好。(好像生成csv文件比较麻烦)
(输出例)
Action名 SQL_ID 回数
rn.kdbs.action.search.pre.CompanyAction1#index 0saby2c3v1z0u 100
rn.kdbs.action.search.pre.CompanyAction2#index 0saby2c3v2z0u 101
rn.kdbs.action.search.pre.CompanyAction3#index 0saby2c3v3z0u 200
rn.kdbs.action.search.pre.CompanyAction4#index 0saby2c3v4z0u 201
rn.kdbs.action.search.pre.CompanyAction5#index 0saby2c3v5z0u   1


望有人能帮忙给出具体的实现,本人感激不尽。

|
用awk来实现:
!/bin/awk -f
{
if($0 ~  /^SQL_ID/)
{
key=$2;getline;getline l;
split(l,pat,//*/);
split(pat[2],tmp,/*//);
#print tmp[1];
key=sprintf("%s%s",key,tmp[1]);x[key]++;
}
}
END{
for(i in x)
printf("%s %dn",i,x[i]);
}



1.把上面内容存到file1.awk
2.chmod u+x file1.awk //保证有执行权限
3.awk -f file1.awk test //test是你的文件

输出类似:
0saby2c3v1z0u, rn.kdbs.action.search.pre.CompanyAction#index  4
0saby2c3v1t0u, tn.kdbs.action.search.pre.CompanyAction#index  2

    
 
 

您可能感兴趣的文章:

  • 请教如何在指定目录下查找包含指定文字的文件
  • [请教]shell中删除指定行
  • 请教:如何将网卡ip地址由DHCP获取该为指定ip
  • 请教关于linux内存管理问题,如何给定义的变量指定固定内存段
  • 请教:如何在指定目录下建立一个类似于.bat的文件并编辑它
  • 请教 如何在linux中搜索指定的 字符串。
  • 请教各位大虾:怎样用ar命令将库文件释放到指定路径下
  • 请教:如何用简单的方式将某个指定目录下的几十个jar文件在CLASSPATH变量中注册?(50)
  • 请教Linux 读取指定目录中文件名的相关程序
  • 请教:如何用shell实现指定log文件中的指定内容的收集(续)
  • 请教LINUX下本机有多块网卡取其中指定一块网卡所对应的IP方法
  • 请教一个正则表达式,匹配所有Html标签外部的指定字符串
  • 请教,如何用linux FTP命令,上传文件到windows指定目录?
  • 请教Log4j的问题
  • 请教shell脚本中ls -la >ls.log <<!,中的"<<!"是什么意思?
  • 请教关于打开/var/log/messages文件的问题
  • 请教 使用 vim 解析 log文件
  • 请教:SUSE linux下的/var/log/localmessages在solaris下对应的目录是啥?
  • 请教有关/etc/log.d/scripts/logwatch.pl的问题
  • 请教:如何将网卡ip地址由DHCP获取该为指定ip iis7站长之家
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何通过其他网站发送短消息(比如新浪)?JSP页面提交,高分请教!!
  • 请教:怎样才能自动启动服务?比如http
  • 请教,如果选出数据库中一条记录(比如一万条中的第3000条)
  • 请教下用什么命令去查询某个端口是否开启了,比如8080
  • 请教如何从ftp服务器上安装操作系统(比如redhat、windows等),需要什么软件?
  • 请教:如何控制JTextField的输入字符个数,比如只准输入三个字符,光标不能再向右移动了。
  • 请教一下高手:在Linux(Red Hat)下怎样用程序修改文件的属性呢?比如时间、权限等。C语言只能修改时间!
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教这种循环的执行过程
  • 请教两个redhat9问题
  • 请教局域网中如何通过ip地址得到主机名
  • 请教kdevelop的问题
  • 请教linux 下的adsl拨号问题.
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教一个opengl的问题
  • 请教unix常用命令命令问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3