awk BEGIN和END模块

匿名 (未验证) 提交于 2019-12-02 23:34:01

通常,对于每个输入行,awk 都会执行每个脚本代码块一次。然而,在许多编程情况中, 可能需要在 awk 开始处理输入文件中的文本之前执行初始化代码。对于这种情况,awk 允许 您定义一个 BEGIN 块。我们在前一个示例中使用了 BEGIN 块。因为 awk 在开始处理输入文件之前会执行 BEGIN 块,因此它是初始化 FS(字段分隔符)变量、打印页眉或初始化其它 在程序中以后会引用的全局变量的极佳位置。 awk 还提供了另一个特殊块,叫作 END 块。awk 在处理了输入文件中的所有行之后执行 这个块。通常,END 块用于执行最终计算或打印应该出现在输出流结尾的摘要信息。 BEGIN{}: 读入第一行文本之前执行的语句,一般用来初始化操作{}: 逐行处理END{}: 处理完最后以行文本后执行,一般用来处理输出结果
实例:文件开头加REDHAT,末尾加WESTOS,打印行号和内容
[root@localhost]# awk -F: ‘BEGIN {print “REDHAT”} {print NR;print} END {print “WESTOS”}’ passwd
统计文本总字段个数
[root@server19 mnt]# awk ‘BEGIN{i=0}{i+=NF}END{print i}’ test.txt

文章来源: https://blog.csdn.net/SSECLaiFU/article/details/90344624
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!