《鸟哥的Linux私房菜》学习笔记之awk工具
相较于sed常常作用于一整个行的处理,awk则比较倾向于一行当中分成数个字段来处理
1、awk通常运行的模式
awk ‘条件类型1{操作1} 条件类型2{操作2} ...‘ filename
awk主要是处理每一行的字段内的数据,而默认的字段的分割符为“空格键”或“【Tab】键”;以字段为最小的处理单位
awk后续的所有操作是以单引号【‘】括住的
每一行的每个字段都是有变量名称,那就是$1、$2等变量名称;$0表示一整列数据的意思
2、awk的处理流程:
(1)、读入第一行,并将第一行的数据写入$0、$1、$2等变量当中
(2)、根据“条件类型”的限制,判断是否需要进行后面的“操作”
(3)、完成所有操作与条件类型
(4)、若还有后续的行,则重复上面(1)~(3)的步骤,直到所有的数据都读完为止
NF | 每一行($0)拥有的字段总数 |
NR | 目前awk所处理的是第几行数据 |
FS | 目前的分割符,默认是空格键 |
3、awk逻辑运算字符
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
例子:列出第3个字段小于10的行
cat filename | awk ‘$3 <10 {print $1 "\t" $3}‘