书评:《UNIX awk 和 sed 程序员交互式工作手册》

作者:Paul Dunne
Book Review: UNIX awk and sed Programmer's Interactive Workbook
  • 作者:Peter Patsis

  • 出版社:Prentice-Hall

  • URL: http:www.prenhall.com/

  • ISBN: 0-13-082675-8

  • 价格:$34.99

  • 评论员:Paul Dunne

尽管标题冗长,但这不是一本关于 UNIX 的书。它讲的是三个 UNIX 实用程序:grepsedawk,每个程序都单独地、一个接一个地介绍。我从经典教材《UNIX 编程环境》(作者 Kernighan 和 Pike)中学习了这些工具以及其他工具。尽管其中有些部分已过时,但该书在篇幅不大的空间内塞入了大量信息,并且始终没有忽略 AWK、sed 和类似工具旨在 UNIX 环境中使用,与 shell 和其他 UNIX 工具协同工作这一事实。将它们从上下文中剥离出来,会使它们看起来远不如实际有用。在这本书中,几乎看不到管道。不仅如此,我们甚至看不到 sed 和 AWK 通过临时文件协同工作。每种工具都被完全孤立地考虑。单独学习 AWK 和 sed 几乎没有意义。如果有人真的决心在不使用 shell 和其他实用程序的情况下完成所有操作,那么 Perl 是这两者的真正超集。只有将 AWK 和 sed 视为工具集的一部分时,它们才能发挥作用。

这本书内容过于冗余。我不知道我们被告知与本书相关的网站有多少次,但一次就足够了。我个人讨厌如今这类书籍中流行的小图标。每次我们勇敢的作者提到网络时,我们都会看到一张蜘蛛网的图片(我不是在编造),每个题外话或技术提示(我真的不知道该怎么称呼它们——唯一的线索是每个旁边的小图标)都附有一顶大礼帽,等等。我不知道这是否都是 IDG 的错,但我在他们的“傻瓜”系列中首次遇到了这种风格。在那里,虽然仍然让我反感(而且不要让我开始说这家公司称顾客为“傻瓜”!),但至少它是经过深思熟虑并融入到书中的;在这里,它只是毫无意义。如果我想要图片,我会去看漫画书。

没有提及哪个 AWK 或 sed 或 grep。例如,一个人可能正在使用 GNU awk (gawk)、nawk、mawk、MKS awk 或几个供应商实现中的任何一个,尽管几乎不是原始的 awk。这些事情很重要。我们这里谈论的是严格的 POSIX sed 和 AWK 吗?我们没有被告知。任何处理这些工具的书籍都需要简要地讨论这个话题。

这本书有什么我喜欢的地方吗?嗯,练习和自我复习题很频繁,而且虽然通常很简单,但确实具有与前面的主题相关的优点,涵盖了你应该学到的内容。它们经过了考虑,而不是仅仅作为事后才添加的东西。

对于那些觉得 Kernighan & Pike 的处理方式过于简洁的人来说,这本书可能有用;但是,如果不用一本讨论这些工具在适当上下文中的书来补充甚至取代它,这本书是不够的。就我个人而言,我认为正确的方法是这样一种双重方法。依赖一本好的学习书,但手头要有一本更详细的参考书,以便在出现问题或疑问时查阅。不幸的是,这本书两者都不是。例如,附录中列出了“Awk、sed 和 grep”参考。翻到附录,我们发现只有一个相当稀疏的 AWK 参考,没有提及另外两个。

这本书对于它所做的事情来说并不是一本坏书。然而,它所做的事情是不够的,并且目标市场错误。封面宣称“非常适合初学者和中级 UNIX 程序员”。对于初学者或中级 UNIX 程序员或用户来说,这里包含的内容都很少。它更适合拥有 Cygnus Win32 工具包并想知道如何使用它的 Windows 用户。即便如此,对 shell 的一些介绍几乎是必不可少的。实际上,希望 Win32 环境看起来像 UNIX 的人将是有 UNIX 经验的人,而这本书不适合他们。那么市场是什么?嗯,这是这本书最大的问题。在其相当狭窄的范围内,它做得很好;但它没有明确的目标受众。如果您需要学习 sed 和 AWK,那么最好的资源仍然是 Kernighan & Pike 和 O'Reilly 的 UNIX Power Tools

我很难向任何人推荐这本书。对于那些需要缓慢而轻松地入门 sed 和 AWK 的人来说,如果用一本关于使用 shell 的通用著作来补充,它可能有用。

Paul Dunne (paul.dunne@bigfoot.com) 是一位爱尔兰作家和顾问,专门研究 Linux。他唯一一次赶上的截止日期是他第一篇文章的截止日期。他的主页是 http:dunne.home.dhs.org/

加载 Disqus 评论