GAWK入门

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

GAWK 入门:AWK 语言基础

利用GAWK 的开放源代码实现学习AWK

了解A WK 文本处理和模式扫描语言的基本概念。本教程将带您开始使用A WK 进行编程:您将了解A WK 如何读取输入数据和对其进行排序、如何运行A WK 程序、操作数据并进行复杂的模式匹配。当您完成本教程的学习时,同时也了解了GNU A WK (GA WK)。

开始之前

了解本教程中介绍的内容、如何最好地利用它以及在学习本教程的过程中需要完成哪些工作。

关于本教程

GNU A WK (GAWK) 是历史悠久的A WK 编程语言的开放源代码实现,可用于所有的UNIX® 系统。A WK 语言是一种UNIX 备用工具,它是一种功能强大的文本操作和模式匹配语言,特别适用于进行信息检索,这使得它非常适合用于当今的数据库驱动的应用程序。因为它集成于UNIX 环境,所以可以设计、构建和快速地执行完整的工作程序,并且立即就能得到结果。

本教程为A WK 文本处理语言提供了实践性的介绍。它介绍了如何使用开放源代码GA WK 解释器来编写和执行A WK 程序,以便通过各种方式来搜索和操作数据。

目标

本教程面向那些需要利用A WK 强大的文本操作功能的读者。在本教程中,您将使用GA WK,以了解各种运行A WK 程序的方法。您还将了解如何组织程序,并学习A WK 的记录和字段范例。在完成本教程后,您可以学习到该语言的基本内容,包括格式化输出、记录和字段操作以及模式匹配。您还应该能够编写自定义的A WK 程序,以使用UNIX 命令行执行复杂的文本处理。

先决条件

本教程没有特殊的先决条件,不过您应该熟悉UNIX 命令行Shell 的使用。如果您对 C 编程语言的构造比较熟悉,那么将会很有帮助,但这并不是必需的。

系统要求

您必须在系统中安装GA WK 的工作副本,最好是V ersion 3.0 或更高版本。很容易获得GA WK 的源代码和二进制包。如果您使用源代码安装GA WK,请参考GA WK 源代码分发版中的README 文件,其中列出了进行成功的编译和安装所需的任何附加软件。

准备好开始使用GAWK

了解A WK 编程语言以及不同实现之间的差异,并准备好安装GA WK,以便可以开始进行编程。

A WK 语言

AWK是该编程语言本身的名称,它编写于1977 年。其名称是三个主要作者的姓的首字母缩写:Drs. A. Aho、P. Weinberger 和B. Kernighan。

因为A WK 是一种文本处理和模式匹配语言,所以它通常称为数据驱动的语言,程序语句描述需要进行匹配和处理的输入数据,而不是程序操作步骤的序列,在许多语言中都是这样的。A WK 程序在其输入数据中搜索包含模式的记录、对该记录执行指定的操作,直到程序到达输入的末尾。A WK 程序擅长于处理数据库和表型数据,如从多个数据集中提取一些列、建立报表或分析数据。事实上,A WK 适合于编写短小的、一次性程序,以执行一些灵活的文本处理,而使用其他的语言则可能成本较高。另外,作为一种功能强大的工具,A WK 常常在命令行中使用或与管道一起使用。

与Perl(它起源于A WK)一样,A WK 是一种解释性语言,所以A WK 程序通常不需要进行编译。相反,在运行时将程序脚本传递给A WK 解释器。

A WK 输入语言使用类似 C 语言的语法,这使得系统编程人员感觉到非常的方便。事实上,其中许多特性,包括控制语句和字符串函数,如printf 和sprintf,基本上是相同的。然而,也存在着一些差异。

A WK 的不同版本

在20 世纪80 年代中期,对A WK 语言进行了更新,并不同程度地使用一种称为NA WK (New AWK) 的增强版本对其进行了替换。许多系统中仍然存在着旧的A WK 解释器,但通常将其安装为oawk (Old AWK) 命令,而NA WK 解释器则安装为主要的awk 命令,也可以使用nawk 命令。Dr. Kernighan 仍然在对NA WK 进行维护,与GA WK 一样,它也是开放源代码的,并且可以免费获得。

GA WK 是GNU Project 的A WK 解释器的开放源代码实现。尽管早期的GA WK 发行版是旧的A WK 的替代程序,但不断地对其进行了更新,以包含NA WK 的特性。

在本教程中,AWK始终表示引用通用的语言,而GAWK 或NA WK 实现所特有的特性则使用它们的名称进行引用。

GA WK 的特性和优点

GA WK 具有下列独特的特性和优点:

在所有主要的UNIX 平台以及其他操作系统中都可以使用它,包括Mac OS X 和Microsoft® Windows®。

∙它是可移植操作系统接口(POSIX) 兼容的,并且包含1992 POSIX 标准中的所有特性。

∙它没有预定义的内存限制。

∙可以使用一些新的内置函数和变量。

∙它包含一些特殊的regexp 操作符。

∙记录分隔符中可以包含regexp 操作符。

∙可以使用特殊文件支持来访问标准的UNIX 流。

∙可以使用Lint 检查。

∙在缺省情况下,它使用扩展的正则表达式。

∙它支持无限制的行长度和连续使用反斜杠字符(\)。

∙它具有更好的、更具描述性的错误消息。

∙它包含一些TCP/IP 网络函数。

检查版本

在安装了GA WK 之后,首先您必须确定本地副本放在什么地方。大多数系统使用GA WK 作为它们主要的A WK 安装,比如将/usr/bin/awk 作为/usr/bin/gawk 的符号链接,这样一来,awk 就成了GA WK 解释器命令的名称。本教程采取了这种安装方式。在有些系统中,已经安装了其他版本的A WK 或者具有高优先级,那么您可能需要使用gawk 来调用GA WK。

如果输入awk 命令并得到GNU 使用方法屏幕,如清单1所示,那么您将了解到是否正确地安装了所有的内容。大多数版本的A WK 不会返回任何内容。

清单 1. 将GA WK 安装为awk

$ awk

Usage: gawk [POSIX or GNU style options] -f progfile [--] file ...

Usage: gawk [POSIX or GNU style options] [--] 'program' file ...

POSIX options: GNU long options:

-f progfile --file=progfile

-F fs --field-separator=fs

-v var=val --assign=var=val

-m[fr] val

-W compat --compat

相关文档
最新文档