程序框架
就像c程序的入口函数约定是main()
,awk也有自己的一套程序约定,参考下面的程序,还是以上一节中的chapter_1_1-1.data文件来进行处理:
BEGIN{ print("BEGIN"); } { print("BODY"); } END{ print("END"); }
$awk -f chapter_1_2-1.awk chapter_1_1-1.data
BEGIN
BODY
BODY
BODY
END
一个完整的awk程序包含三部分:
BEGIN{}
的程序预处理部分,只在开始文件扫描前执行一次;{}
程序主体部分,执行次数取决于目标处理文件的行数,每一行被扫描到时都会触发一次执行;END{}
所有文件扫描完成后的触发执行一次,通常用作收尾的统计处理。
对于以上三个部分并不都是必须的,三者只需要具备其一就是一个合法的awk脚本,但基于良好的编程习惯来说,本书建议无论是否会用到全部三个部分,也还是在代码文件中明确的标记上所有的结构。