程序框架
就像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脚本,但基于良好的编程习惯来说,本书建议无论是否会用到全部三个部分,也还是在代码文件中明确的标记上所有的结构。