通过两个简单的教程来提高你的 awk 技能


通过两个简单的教程来提高你的 awk 技能

文章插图
 
超越单行的 awk 脚本,学习如何做邮件合并和字数统计 。
• 来源:linux.cn • 作者:Dave Neary • 译者:Xingyu.Wang •
(本文字数:6674,阅读时长大约:8 分钟)
【通过两个简单的教程来提高你的 awk 技能】 
awk 是 Unix 和 Linux 用户工具箱中最古老的工具之一 。awk 由 Alfred Aho、Peter Weinberger 和 Brian Kernighan(即工具名称中的 A、W 和 K)在 20 世纪 70 年代创建,用于复杂的文本流处理 。它是流编辑器 sed 的配套工具,后者是为逐行处理文本文件而设计的 。awk 支持更复杂的结构化程序,是一门完整的编程语言 。
本文将介绍如何使用 awk 完成更多结构化的复杂任务,包括一个简单的邮件合并程序 。
awk 的程序结构awk 脚本是由 {}(大括号)包围的功能块组成,其中有两个特殊的功能块,BEGIN 和 END,它们在处理第一行输入流之前和最后一行处理之后执行 。在这两者之间,块的格式为:
模式 { 动作语句 }当输入缓冲区中的行与模式匹配时,每个块都会执行 。如果没有包含模式,则函数块在输入流的每一行都会执行 。
另外,以下语法可以用于在 awk 中定义可以从任何块中调用的函数 。
function 函数名(参数列表) { 语句 }这种模式匹配块和函数的组合允许开发者结构化的 awk 程序,以便重用和提高可读性 。
awk 如何处理文本流awk 每次从输入文件或流中一行一行地读取文本,并使用字段分隔符将其解析成若干字段 。在 awk 的术语中,当前的缓冲区是一个


    推荐阅读