awk 程序的流程可分为三个部分:开始、进行和结束。
开始阶段在读取输入之前进行,主要做一些初始化的工作,例如设置记录分隔符(RS)等。
结束阶段发生在所有输入读取之后,主要做一些收尾工作,例如统计总共处理的记录数等。
开始和结束阶段在awk程序中是可选的部分,awk中有两个特殊的Pattern(模式)——BEGIN 和END ,分别用于开始和结束阶段。
最重要的工作就是进行阶段了,这个阶段由awk维护一个主循环,awk按照设定的记录分隔符(FS)从输入中每次读取一条记录,然后执行用户的awk指令(就是一堆Pattern {Action}了)。
awk工作流程
1、自动从输入读取一条记录
2、自动更新相关的内建变量的值,例如:NF、NR、$0等
3、依次执行程序中所有的Pattern {Action}指令
4、执行完所有的Pattern {Action}指令后,若从输入还可以读取到数据,则反复执行步骤1到步骤4
以上四个步骤的重复执行,完全由awk来自动进行,无需使用者编写这个循环,使用者只需要根据业务需求设计Pattern {Action}即可。
awk程序流程示例程序
为了能够更直观的感受awk程序的流程,以一个示例程序来进行演示,示例程序请参考《awk中的各种模式(Pattern)详解》中的示例程序。
转载请注明:Coding Ants » awk程序流程介绍(附图)