3.4. Awk 源自 Sed 和 Grep,最终源自 Ed —— 第三部分

未匹配的标注

Awk 源自 Sed 和 Grep,最终源自 Ed —— 第三部分

Sed 还设计了许多支持脚本编写的附加命令。我们将在第六章 《高级 sed 命令》去学习许多这些命令。

Awk 被设计为一个像 sed 的可编程编辑器——面向流,并且解释编辑命令的脚本。Awk 和 sed 的不同在于他抛弃了行编辑器命令集,提供了以 C 语言为模型的一门编程语言作为代替。比如 print 语句取到了 p 命令。寻址概念仍然有效,例如:

/regular/ { print }

打印匹配 “regular” 的那些行。大括号({}) 围绕一系列一行或多行作用于同一地址的语句。

脚本中使用编程语言的优势在于它提供了多得多的方法来控制可编程编辑器可以做什么。 Awk 提供了表达式条件、语句循环和其他编程结构。

Awk 最与众不同的特征之一是解析或者是打碎每一个输入行,使得每个单词都可以被脚本处理。(像 vi 这种编辑器也能识别单词,允许你按单词移动,或者使当单词成为一个动作的对象,但这些特征只能被交互的使用。)

虽然 awk 被设计为一个可编程的编辑器,但用发现 awk 脚本还能完成许多其他的任务。 Awk 的作者从来没有想到它可以被用来写大的程序。但是当意识到 awk 可以被这样使用,作者修改了这个语言,创造了 nawk 来对写大程序和处理通用目的的编程问题提供更多的支持。这个新版本做了微小的改进,现在被 POSIX 标准收录。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 查看所有版本


暂无话题~