文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络程序开发Oracle一个优秀的分析trace文件的脚本
精品推荐
特别推荐
·ORACLE应用中常见的傻瓜问题1000问 (二)
·自动清除statspack所产生的snapshot旧记录
·MPlayer常见问题解答
·常用数据库比较
·ODBC API常用函数诠释
·提高ORACLE数据库的查询统计速度
·细化解析:Oracle使用的hints调整机制
·解析Oracle/Oracle Forms 的多用途代码
·从Oracle的FORM中调用REPORT的实用技巧
·Oracle SQL精妙SQL语句讲解
热点TOP10
·ORACLE常用傻瓜问题1000问
·自动清除statspack所产生的snapshot旧记录
·ORACLE应用中常见的傻瓜问题1000问 (二)
·Oracle SQL精妙SQL语句讲解
·详细介绍ORACLE sqlplus命令
·Oracle DBMS_REPAIR包修复损坏数据块
·ORA-01555 快照过旧
·Oracle客户端文件打包
·DBMS_REPAIR包修复损坏数据块
·VMware下RedHat安装Oracle 9i RAC全攻略

一个优秀的分析trace文件的脚本

日期:2007年7月2日 作者: 查看:[大字体 中字体 小字体]


  使用于unix类环境,附件中的是oracle工程师分析trace文件用的,的使用说明在文件中有,down下来后可把txt文件后缀去掉。非常的方便。下面是关于awk的一些简单介绍:
  
  Awk 是一种非常好的语言,同时有一个非常奇怪的名称。在本系列(共三篇文章)的第一篇文章中,Daniel Robbins 将使您迅速掌握 awk 编程技巧。随着本系列的进展,将讨论更高级的主题,最后将演示一个真正的高级 awk 演示程序。
  捍卫 awk
  在本系列文章中,我将使您成为精通 awk 的编码人员。我承认,awk 并没有一个非常好听且又非常“时髦”的名字。awk 的 GNU 版本(叫作 gawk)听起来非常怪异。那些不熟悉这种语言的人可能听说过 "awk",并可能认为它是一组落伍且过时的混乱代码。它甚至会使最博学的 UNIX 权威陷于错乱的边缘(使他不断地发出 "kill -9!" 命令,就象使用咖啡机一样)。
  
  的确,awk 没有一个动听的名字。但它是一种很棒的语言。awk 适合于文本处理和报表生成,它还有许多精心设计的特性,允许进行需要特殊技巧程序设计。与某些语言不同,awk 的语法较为常见。它借鉴了某些语言的一些精华部分,如 C 语言、python 和 bash(虽然在技术上,awk 比 python 和 bash 早创建)。awk 是那种一旦学会了就会成为您战略编码库的主要部分的语言。
  第一个 awk
  让我们继续,开始使用 awk,以了解其工作原理。在命令行中输入以下命令:
  $ awk '{ print }' /etc/passwd
  您将会见到 /etc/passwd 文件的内容出现在眼前。现在,解释 awk 做了些什么。调用 awk 时,我们指定 /etc/passwd 作为输入文件。执行 awk 时,它依次对 /etc/passwd 中的每一行执行 print 命令。所有输出都发送到 stdout,所得到的结果与与执行catting /etc/passwd完全相同。
  
  现在,解释 { print } 代码块。在 awk 中,花括号用于将几块代码组合到一起,这一点类似于 C 语言。在代码块中只有一条 print 命令。在 awk 中,如果只出现 print 命令,那么将打印当前行的全部内容。
  这里是另一个 awk 示例,它的作用与上例完全相同:
  $ awk '{ print $0 }' /etc/passwd
  在 awk 中,$0 变量表示整个当前行,所以 print 和 print $0 的作用完全一样。
  如果您愿意,可以创建一个 awk 程序,让它输出与输入数据完全无关的数据。以下是一个示例:
  $ awk '{ print "" }' /etc/passwd
  只要将 "" 字符串传递给 print 命令,它就会打印空白行。如果测试该脚本,将会发现对于 /etc/passwd 文件中的每一行,awk 都输出一个空白行。再次说明, awk 对输入文件中的每一行都执行这个脚本。以下是另一个示例:
  $ awk '{ print "hiya" }' /etc/passwd
  运行这个脚本将在您的屏幕上写满 hiya。
  
  多个字段
  awk 非常善于处理分成多个逻辑字段的文本,而且让您可以毫不费力地引用 awk 脚本中每个独立的字段。以下脚本将打印出您的系统上所有用户帐户的列表:
  $ awk -F":" '{ print $1 }' /etc/passwd
  上例中,在调用 awk 时,使用 -F 选项来指定 ":" 作为字段分隔符。awk 处理 print $1 命令时,它会打印出在输入文件中每一行中出现的第一个字段。以下是另一个示例:
  $ awk -F":" '{ print $1 $3 }' /etc/passwd
  以下是该脚本输出的摘录:
  halt7
  operator11
  root0
  shutdown6
  sync5
  bin1
  ....etc.
  如您所见,awk 打印出 /etc/passwd 文件的第一和第三个字段,它们正好分别是用户名和用户标识字段。现在,当脚本运行时,它并不理想 -- 在两个输出字段之间没有空格!如果习惯于使用 bash 或 python 进行编程,那么您会指望 print $1 $3 命令在两个字段之间插入空格。然而,当两个字符串在 awk 程序中彼此相邻时,awk 会连接它们但不在它们之间添加空格。以下命令会在这两个字段中插入空格:
  $ awk -F":" '{ print $1 " " $3 }' /etc/passwd
  以这种方式调用 print 时,它将连接 $1、" " 和 $3,创建可读的输出。当然,如果需要的话,我们还可以插入一些文本标签:
  $ awk -F":" '{ print "username: " $1 "\t\tuid:" $3" }' /etc/passwd
  这将产生以下输出:
  username: halt uid:7
  username: operator uid:11
  username: root uid:0
  username: shutdown uid:6
  username: sync uid:5
  username: bin uid:1
  ....etc.
  外部脚本
  将脚本作为命令行自变量传递给 awk 对于小的单行程序来说是非常简单的,而对于多行程序,它就比较复杂。
[1] [2] [3] 下一页 



上一篇:ORACLE在HP-UX下的系列问题处理(50)

下一篇:[TIP][OCP 9i] Share my experience
相关文章:
·我发现了qq的一个惊人秘密!
·[情报]和一个骗子的1小时聊天记录,供大家欣赏,提高警惕!
·我和一个偷尝禁果的女孩的故事
·压缩文件的密码破解
·MPEG、RM、WMV电影文件格式转换指南
·人生哲理:一个人最重要的是他的内心
·关于BT下载伤硬盘的深度分析
·电脑反应慢的故障分析
·怎样清除硬盘及系统垃圾文件?
·dll文件下载
相关软件:

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot