Linux系统命令之AWK

来源:互联网 发布:sai软件图标 编辑:程序博客网 时间:2024/06/16 09:18

摘自:《30分钟学会AWK》(http://mp.weixin.qq.com/s?__biz=MzAxODI5ODMwOA==&mid=2666540280&idx=1&sn=cf4d60ac5499856188faba8ef1ea7df5&chksm=80dce853b7ab61456db363237a1a5114af0cb7c8f55b45c2b82ce1d77ccd8997c84ec7933e44&mpshare=1&scene=23&srcid=0109YkpiMUvHSfxDIKGN2Qc5#rd)

概述:

AWK是一门解释型的编程语言;

在文本处理领域是非常强大的;

GUN/Linux发布的awk目前由自由软件基金会(FSF)进行开发和维护,通常也称为GUN AWk;

命名来源于三位开发者的的姓氏:Alfred Aho, Peter Weinberger 和 Brian Kernighan。


分类:

AWK:源于AT&T实验室的AWk;

NAWk:AT&T实验室的AWk的升级版;

GAWK:就是GUN AWK(所有的GUN/Linux发布版都自带GAWK,与AWk、NAWK完全兼容


用途:

文本处理;

输出格式化的文本报表;

执行算数运算;

执行字符串操作;

等等。


工作流程:

要成为AWK编程专家,需先知道它的内部实现机制。AWK的工作流如下:

Execute AWk commands from BEGIN block ——> Read a line from input stream ——> Execute AWK commands on a line ——>Repeat if it is not End of File

/|\|

 |_____________________________________________________________|

       \|/

Execute AWK commands from End block

Read:AWK从输入流(标准输入、文件或管道)中读取一行,然后存储到内存中;

Execute:所有的AWK命令都依次再输入上执行(默认情况:AWK会对每一行命令执行,可以通过提供模式限制这种行为);

Repeat:处理过程不断重复,直到到达文件结尾。


使用:

语法:awk  '{pattern + action}'  {filename}

pattern在数据中查找的内容(为正则表达式,用斜杠括起来)

action在找到匹配的内容时所要执行的命令

filename为目标文件

1、命令行


2、shell脚本


3、将所有的awk命令插入一个单独文件,然后调用


0 0