awk是什么
awk是一种优良的文本处理工具,同时也是一种脚本语言。awk的三位作者者已将它正式定义为“样式扫描和处理语言”。awk脚本允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。我认为,awk命令其实就是awk脚本的解释器。据说sed和grep能做的事情,awk都可以做。
awk可以做什么,一般用它所什么
可以进行数学运算和字符串处理,截至目前,我用过做的是筛选字符串。
awk的调用方式
命令方式1
awk '{print $1}'
命令方式2
awk -f script.awk textfile1
脚本方式
myscript.awk textfile1
这种脚本的第一行一定要是"#!/bin/awk -f",并且脚本要有执行权限
PS:
我说的awk命令是指在终端输入的红色个"awk",有些地方把awk对文本的具体处理动作叫做awk命令,我认为这些动作叫做awk指令合适,如上文中的蓝色。
我看有些地方把awk脚本叫做awk程序,我还是管他叫awk脚本吧,如上文的绿色。
awk工作方式
有3个阶段,工作的每个阶段貌似是有一组指令,用一个{}括住,是这样的吗?
记录和域,域分隔符
运算符:关系,罗辑,算术
awk变量
awk系统变量(内置变量)
格式化输出
字符串函数
流程控制:条件语句,循环语句
awk数组
补充:
在awk中访问shell变量的方法
1.使用单引号,注意一定是单引号,否则会在给awk传参时就展开变量,就错了
awk 'BEGIN {print '$a'}'
2.通过awk的选项给awk定义变量,这样的变量访问时不用$,直接用名字
awk -v a=1 'BEGIN {print a}'