自学AWK

因为最近公司要做一个自己的监控系统,所以涉及到awk,最近也是花点时间研究了一下:

1.什么是awk?

简单的说就是一种优良的文本处理工具

具体的定义:详见百度

2.命令语法:

awk‘{pattern+action}’

代码演示:

V_FROM=`echo $tmpline | awk '{match($7,/log\.gif\?from=([a-zA-Z]+)/,a);print a[1]}'`;

awk'pattern{action}'

代码演示:

awk '/pv.php\?from=i/ {print $0}' /k1/k2/k3/access_pv_$(date -d "yesterday" +"%Y%m%d").log> /k1/k2/k3/access_i.log
注:k1/k2/k3 是路径
 pattern 表示awk在数据中查找的内容,通常pattern是一个正则表达式 
  

action 是匹配到内容时所执行的一系列的命令

3.awk的命令行模式的使用方法:

自学AWK_第1张图片

-F指定区域分隔符为“:”,默认是空格


如果只是显示/etc/passwd的账户和账户对应的shell,而且在所有行添加列名name,shell,在最后一行添加"this is end"。



awk工作流程是这样的:先执行BEGING,然后读取文件,读入有/n换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的动作action。接着开始读入第二条记录······直到所有的记录都读完,最后执行END操作。



你可能感兴趣的:(linux)