文章插图
超越单行的 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 的术语中,当前的缓冲区是一个
推荐阅读
- 西红柿猪肝汤
- 卜算子咏梅诗词主要通过对什么的描写 卜算子咏梅的作者全诗表达了什么
- 两个无理数的和一定是无理数吗?
- 端口的作用
- |领导想要废掉下属,居然如此简单,你又知道多少?
- 两个人在一起到底图什么?两个人在一起总要有所图
- 为什么姓陈的大官夸奖孔融,说他不简单 孔融对陈韪的回答
- 安徽翰林茶业加盟信息,八角亭茶业农垦农产品质量安全追溯体系建设项目中期考核顺利通过
- CD的音质已经不行了,HIFI必须DSD?简单说说DSD到底是什么
- 通过实验读懂神经网络识别VPN行为