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/