第三步:当读至输入流末尾时,执行END{commands}句子块。BEGIN句子块在awk开始从输入流中读取行之前被执行,这是一个可选的句子块,例如变量初始化、打印输出表格的表头等句子一般可以写在BEGIN句子块中。END句子块在awk从输入流中读取完所有的行以后即被执行,例如复印所有行的剖析结果这类信息汇总都是在END句子块中完成,它也是一个可选句子块。pattern句子块中的通用命令是最重要的部份,它也是可选的。若果没有提供pattern句子块,则默认执行{print},即复印每一个读取到的行linux 统计字段分隔符,awk读取的每一行就会执行该句子块。示例echo-e"Aline1nAline2"|awk'BEGIN{print"Start"}{print}END{print"End"}'StartAline1Aline2End当使用不带参数的print时linux 统计字段分隔符,它就复印当前行,当print的参数是以冒号进行分隔时,复印时则以空格作为定界符。在awk的print句子块中双冒号是被当成拼接符使用,比如:echo|awk'{var1="v1";var2="v2";var3="v3";printvar1,var2,var3;}'v1v2v3双冒号拼接使用:echo|awk'{var1="v1";var2="v2";var3="v3";printvar1"="var2"="var3;}'v1=v2=v3{}类似一个循环体linux防火墙设置linux应用程序,会对文件中的每一行进行迭代,一般变量初始化句子(如:i=0)以及复印文件背部的句子装入BEGIN句子块中,将复印的结果等词句置于END句子块中。