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/

  • 相关阅读:
    Object有哪些公用方法?(转)
    equals和==的区别(转)
    switch语句中case的标签
    (常见面试问题)九种基本数据类型的大小,以及他们的封装类
    English
    plot
    文件读写
    标准化
    独热编码
    一阶逻辑
  • 原文地址:https://www.cnblogs.com/noanswer/p/3083164.html
Copyright © 2011-2022 走看看