- AWK 教程
- AWK - 首页
- AWK - 概述
- AWK - 环境
- AWK - 工作流程
- AWK - 基本语法
- AWK - 基本示例
- AWK - 内置变量
- AWK - 运算符
- AWK - 正则表达式
- AWK - 数组
- AWK - 控制流
- AWK - 循环
- AWK - 内置函数
- AWK - 用户自定义函数
- AWK - 输出重定向
- AWK - 美化输出
- AWK 有用资源
- AWK - 快速指南
- AWK - 有用资源
- AWK - 讨论
AWK - 工作流程
要成为一名专业的 AWK 程序员,你需要了解其内部机制。AWK遵循一个简单的流程:读取、执行和重复。下图描述了 AWK 的工作流程:
读取
AWK 从输入流(文件、管道或标准输入)读取一行并将其存储在内存中。
执行
所有 AWK 命令都按顺序应用于输入。默认情况下,AWK 对每一行执行命令。我们可以通过提供模式来限制这一点。
重复
此过程重复,直到文件到达末尾。
程序结构
现在让我们了解 AWK 的程序结构。
BEGIN 块
BEGIN 块的语法如下:
语法
BEGIN {awk-commands}
BEGIN 块在程序启动时执行。它只执行一次。这是初始化变量的好地方。BEGIN 是 AWK 关键字,因此必须大写。请注意,此块是可选的。
主体块
主体块的语法如下:
语法
/pattern/ {awk-commands}
主体块将 AWK 命令应用于每一行输入。默认情况下,AWK 对每一行执行命令。我们可以通过提供模式来限制这一点。请注意,主体块没有关键字。
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 的 print 命令,该命令只是将内容打印到标准输出流。此过程重复,直到文件到达末尾。
广告