AWK 工作流程

AWK 工作流程

要成为一名熟练的AWK程序员,你需要了解它的内部工作原理。AWK遵循简单的工作流程-读取、执行和重复。以下图表展示了AWK的工作流程-

AWK 工作流程

阅读

AWK从输入流(文件、管道或标准输入)中读取一行,并将其存储在内存中。

执行

所有AWK命令按顺序应用于输入。默认情况下,AWK在每一行上执行命令。通过提供模式,我们可以限制执行。

重复

此过程重复,直到文件达到其末尾。

程序结构

现在让我们了解AWK的程序结构。

BEGIN块

BEGIN块的语法如下 –

语法

BEGIN {awk-commands}

BEGIN块在程序启动时执行。它只执行一次。这是初始化变量的好地方。BEGIN是AWK的关键字,因此必须是大写的。请注意,这个块是可选的。

主体块

主体块的语法如下:

语法

/pattern/ {awk-commands}

body块对每一行输入应用AWK命令。默认情况下,AWK在每一行上执行命令。我们可以通过提供模式来限制这个过程。注意Body块没有关键字。

END块

END块的语法如下:

语法

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脚本显示带有头部的文件内容。

示例

[jerry]$ awk 'BEGIN{printf "Sr No\tName\tSub\tMarks\n"} {print}' marks.txt

当执行这段代码时,会产生以下结果:

输出

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块中打印头部。然后在正文块中,它从文件中读取一行并执行AWK的打印命令,仅将内容打印在标准输出流上。这个过程重复直到文件到达末尾。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程