BEGIN 和 END,BEGIN 被放置在没有读取任何数据之前,而 END 被放置在所有的数据读取完成以后执行
BEGIN{}: 读入第一行文本之前执行的语句,一般用来初始化操作
[root@ansible ~]# awk 'BEGIN{i=0}{i+=NF}END{print i}' test.txt
7
{} 逐行处理 如
[root@ansible ~]# cat test.txt
hui hui xx
xx
xx ni xi
[root@ansible ~]# awk 'BEGIN{i=0}{i+=NF}{print i}' test.txt
3
4
7
END{}: 处理完最后以行文本后执行,一般用来处理输出结果
[root@ansible ~]# cat test.txt
hui hui xx
xx
xx ni xi
[root@ansible ~]# awk 'BEGIN{i=0}{i+=NF}END{print i}' test.txt
7
[root@ansible ~]#
统计一行数字之和
[root@ansible ~]# awk 'BEGIN{for(i=1;i<=5;i++){print i}}'
1
2
3
4
5
##统计一行数字之和
[root@ansible ~]# awk 'BEGIN{for(i=1;i<=5;i++){print