一.awk概述
1.1awk介绍
1.2工作原理
awk 选项 模式或条件{操作} 文件1 文件2...
awk -f 脚本文件 文件1 文件2 ..
2.2指定多个分隔符
2.3awk常用位置变量
awk -F: 'NR==2{print $n}' +文件 #指定处理第二行内容并输出第N列
awk -F: '/关键词/{print $n}' +文件 #指定包含关键词的行,并输出第N列
ifconfig en0|awk '/netmask/{print $2}'
ifconfig en0|grep netmask |awk '{print $2}'
2.5模糊匹配
三.awk内的运算符
3.1数值比较
3.2字符比较
字符比较与模糊匹配不同
3.3逻辑运算
四.BEGIN与END
BEGIN和END的作用是给程序赋予初始状态和在程序结束之后执行一些扫尾的工作。
任何在BEGIN之后列出的操作(在{}内)将在awk开始扫描输入之前执行,而END之后列出的操作将在扫描完全部的输入之后执行。因此,通常使用BEGIN来显示变量和预置(初始化)变量,使用END来输出最终结果。
awk命令执行流程:
常用内置变量:
- FS:输入字段的分隔符,默认是空格
- OFS:输出字段的分隔符,默认是空格
- FNR:读取文件的行号,从1开始,新的文件也重1开始计数
- RS:输入行分隔符,默认为换行符
- ORS:输出行分隔符,默认也是为换行符
4.1 BEGIN
FS=“”指定分隔符,与-F 选项相同
OFS=“”输出字段时,相邻字段以什么做分割
FNR读取文件时的行号,当读取多个文件时,将重新计数
RS:输入时指定以什么为换行符
ORS:把打进的内容合并成一行,输出时以指定的分割符为分割两行的内容
4.2 END
END一般用来做汇总操作,仅在读取完数据记录之后执行一次

五.总结
1.相比grep与sed,awk的功能明显更加的强大,我们可以获取文本中我们所想要的相关内容
2.awk支持数值运算符,逻辑操作
3.awk的内置变量,通过BEGIN模块,在分析文本数据时更加的方便
4.注意在使用print打印多个字段时,建议使用逗号分割,awk后的命令使用’'单分号。
