工作流程( Workflow)
优质
小牛编辑
185浏览
2023-12-01
要成为AWK专家程序员,您需要了解其内部结构。 AWK遵循一个简单的工作流程 - 读取,执行和重复。 下图描绘了AWK的工作流程 -
Read
AWK从输入流(文件,管道或标准输入)读取一行并将其存储在内存中。
执行 (Execute)
所有AWK命令都按顺序应用于输入。 默认情况下,AWK在每一行上执行命令。 我们可以通过提供模式来限制它。
Repeat
重复此过程直到文件结束。
计划结构
现在让我们了解AWK的程序结构。
BEGIN块
BEGIN块的语法如下 -
Syntax
BEGIN {awk-commands}
BEGIN块在程序启动时执行。 它只执行一次。 这是初始化变量的好地方。 BEGIN是一个AWK关键字,因此它必须是大写的。 请注意,此块是可选的。
身体块
主体块的语法如下 -
Syntax
/pattern/ {awk-commands}
主体块在每个输入行上应用AWK命令。 默认情况下,AWK在每一行上执行命令。 我们可以通过提供模式来限制它。 请注意,Body块没有关键字。
结束块
END块的语法如下 -
Syntax
END {awk-commands}
END块在程序结束时执行。 END是一个AWK关键字,因此它必须是大写的。 请注意,此块是可选的。
让我们创建一个文件marks.txt ,其中包含序列号,学生姓名,科目名称和获得的分数。
1) Amit Physics 80
2) Rahul Maths 90
3) Shyam Biology 87
4) Kedar English 85
5) Hari History 89
现在让我们使用AWK脚本显示带有标题的文件内容。
Example
[jerry]$ awk 'BEGIN{printf "Sr No\tName\tSub\tMarks\n"} {print}' marks.txt
执行此代码时,会产生以下结果 -
Output
Sr No Name Sub Marks
1) Amit Physics 80
2) Rahul Maths 90
3) Shyam Biology 87
4) Kedar English 85
5) Hari History 89
在开始时,AWK打印BEGIN块的标题。 然后在body块中,它从文件中读取一行并执行AWK的print命令,该命令只打印标准输出流上的内容。 重复此过程直到文件到达结尾。