zoukankan      html  css  js  c++  java
  • 用gawk和gnuplot来分析ns2的trace文件

    gawk主要功能是针对文本的每一行搜索指定的模式,当某一行符合patterns时就会执行actions。gawk采用这种方式来处理输入档案的每一行,直到输入文件结束。

    一般情况下是 pattern { action} ,如果action省略了,默认的为print;如果pattern省略了,默认的所有行都满足条件

    给出几个eg:

    gawk '/foo/ {print $0}' BBS-list ,意思是BBS-list文件中每一行中只要有foo那么就打印每一行的第一项

    gawk '$1~/foo/ {print $0}' BBS-list ,意思是BBS-list文件中每一行的第一项中有含foo,那么打印这一行全部

    gawk 'BEGIN {OFS=";";ORS="\n\n"}/foo/{print $1,$2}' BBS-list ,意思是分析BBS-list文件开始时设置输出分隔符为";"输出记录分隔符为 "\n\n",之后存在foo的行打印第一项和第二项。

    gawk '/2400/&&/foo/' BBS-list ,意思是对BBS-list文件分析,如果某一行出现了2400且出现了foo,那么打印这一行

    更复杂的控制语句和内建函数目前还没有用到,先不写了~

    gnuplot有两种工作方式,交互式方式和批处理方式。在命令行下直接输入gnuplot就进入交互式

    几个eg:

    plot [0:10] sin(x)+0.1x ,在区间0到10之间画出sin(x)+0.1x

    plot 'test.data' with linespoints ,以test.data第一列为x坐标,第二列为y坐标

    plot sin(x) title 'sqr1',cos(x) title 'sqr2' ,分别绘制sin(x) 和 cos(x)于一张图上,标注名分别定为sqr1,sqr2.

    set xrange[1:10000]

    set logscale x

    set xtics 1,10,10e4

    plot x

    #意思是将x的范围设置为1到10000,对数形式显示x,1到10000以10为一个标度,打印plot x

    我所用到的非常简单:

    gawk '$3=="_6_" {print $3,$14}' trace_mrmc_afsls_cl.tr >>abc

    plot 'abc'

    有一个对gnuplot很详细的说明链接 http://www.ibm.com/developerworks/cn/linux/l-gnuplot/

  • 相关阅读:
    python数据结构之树(二叉树的遍历)
    python数据结构之树(概述)
    python面向对象高级:定制类
    python面向对象高级:Mixin多重继承
    frp
    CentOS7 安装远程桌面
    Java-JVM 锁优化
    Java-内存模型 synchronized 的内存语义
    Java-内存模型 final 和 volatile 的内存语义
    Java-内存模型(JSR-133)
  • 原文地址:https://www.cnblogs.com/noanswer/p/3083164.html
Copyright © 2011-2022 走看看