相比较于sed常常用于一个整行的处理,awk则比较倾向于一行当中分成数个【字段】来处理。
# awk ‘条件类型1{动作1} 条件类型2{动作2}....’ filename
awk可以处理后续接的文件,也可以当成管道命令来读取前一个指令的standard output。awk主要是处理每一行的字段内的数据,而默认的字段的分隔符是空格或者tab键。
PS: $0代笔一整行!!
awk处理流程:
1. 读入第一行,并将第一行的资料填入 $0, $1, $2.... 等变数当中;
2. 依据 "条件类型" 的限制,判断是否需要进行后面的 "动作";
3. 做完所有的动作与条件类型;
4. 若还有后续的『行』的数据,则重复上面 1~3 癿步骤,直到所有的数据都读完为止。
ps: awk 是『以行为一次处理的单位』, 而『以字段为最小的处理单位』。
awk内建变量
awk的逻辑运算字符
awk的动作{}内也支持if()的哦!!请于上面的区别!!