awk介绍
awk 是一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件、数据排序、计算以及生产报表等等
语法
awk option ‘ pattern {action} ‘ file
pattern 表示awk在数据中查找的内容
action 是在找到匹配内容时所执行的一系列命令
花括号用于根据特定的模式对一系列指令进行分组
awk 处理的工作方式和数据库类似,支持对记录和字段处理,这也是grep和sed不能实现的
用 1,2,3...数字的方式顺序的表示行(记录)中的不同字段
用$后跟数字,引用对应的字段,以逗号分隔, 0 表示整个行
选项
模式
常用模式
动作就是 print 、流程控制、I/O语句等
示例
1 从文件中读取awk程序处理文件
2 指定分隔符,打印指定字段
指定多个分隔符
[ ] 元字符的意思时 符号其中任意一个字符,也就是说每次遇到一个 / 或者 # 就分割一个字段,这样更能处理字段
3 三种变量赋值的方法
4 输入akw全局变量到文件
5 BEGIN和END
BEGIN 处理文件之前执行该操作,常用于修改内置变量、变量赋值、打印输出的页眉和标题
打印页眉
END 是在程序处理完才会执行
打印页尾
6 格式化输出 awk命令 到文件,默认输出文件为awkprof.out
7 /re/ 正则匹配
8 逻辑and、or、和not
8.1 匹配包含blp5和tcp的行
8.2 匹配包含 blp5 或 tcp 的行
8.3 不匹配开头是 blp5 和 tcp 的行
9 匹配范围
匹配关键字下一行到最后一行
解释:
1和2都不匹配3,不执行后面{ },执行t,t变量还没赋值,为空,空在awk中就为假,就不打印当前行。
匹配到3,执行t=1,next跳出,不执行t
4也不匹配3,执行t,t的值上次赋值为1,为真,打印当前行,以此类推
打印匹配行到最后一行