要成为专业的AWK程序员,您需要了解其内部机制,AWK遵循简单的工作流程-读取,执行和重复, 下图描述了AWK的工作流程-
Read - AWK从输入流(文件,管道或标准输入)中读取一行并将其存储在内存中。
Execute - 默认情况下,AWK在每一行执行命令,我们可以通过提供模式来限制它。
Repeat - 重复此过程,直到文件结束。
现在让我们了解AWK的程序结构。
BEGIN {awk-commands}
BEGIN块在程序启动时执行,它只执行一次,这是初始化变量的好地方, BEGIN是AWK关键字,因此必须为大写,请注意,此块是可选的。
/pattern/{awk-commands}
主体块在每条输入线上都应用AWK命令,默认情况下,AWK在每一行执行命令,我们可以通过提供模式来限制它,请注意,Body块没有关键字。
END {awk-commands}
END块在程序结尾处执行, END是AWK关键字,因此必须为大写,请注意,此块是可选的。
让我们创建一个文件 marks.txt ,其中包含序列号,学生姓名,学科名称和获得的分数数量。
1) Learnfk Physics 80 2) Toolfk Maths 90 3) Chromefk Biology 87 4) Poemfk English 85 5) Nesfk History 89
现在,让我们使用AWK脚本显示带有标题的文件内容。
[jerry]$awk 'BEGIN{printf "Sr No\tName\tSub\tMarks\n"} {print}' marks.txt
执行此代码后,将产生以下输出-
Sr No Name Sub Marks 1) Learnfk Physics 80 2) Toolfk Maths 90 3) Chromefk Biology 87 4) Poemfk English 85 5) Nesfk History 89
首先,AWK从BEGIN块打印标题, 然后,在主体块中,它从文件中读取一行并执行AWK的print命令,该命令仅将内容打印在标准输出流上, 重复此过程,直到文件结束。
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)