Unix® 起源于简单的文本处理,并且在它的命令行环境中保留了功能最强大的文本处理工具之一。通过将一系列简单的命令组合在一起,可以完成复杂的文本转换,UNIX 提供的工具允许您构建几乎任何所需的文本处理引擎。
引言
在 UNIX® 诞生之初,人们不大熟悉这种新的操作系统,但他们很快找到了适当的切入点,大学中的研究人员需要一种像样的文本处理环境。因为在那个时候,计算机的处理速度和内存容量有限,所以程序必须很小,并且相对比较简单。这样就产生了 UNIX 中著名的设计思想:“一组工具协同工作,以便完成一项任务。通过 UNIX 管道将几种很小的、但功能强大的文本处理工具组合在一起,可以对文本进行各种方式的转换和操作。
在本文中,您将简要了解从文件和程序中获得文本、使用 tr 命令对其进行简单的转换、使用 sed 命令进行复杂的搜索和替换操作。然后,您将使用 Perl 编程和脚本语言再次完成这些操作,这样一来您就可以认识到,Perl 的功能非常强大,它可以替代 tr 和 sed 命令。
开始之前
如果您希望按照本文中的示例进行实验,请确保您可以使用 UNIX 命令行环境。这可能是本地计算机中的终端模拟程序(在现代桌面中通常称为 终端,如果您习惯使用 Windows®,那么可以使用 Cygwin)、或通过 SSH 访问的远程系统。
本文的示例所使用的 Shell 语法适用于 GNU Bash,有关需要使用的特定语法,请参考您的 Shell 手册(或者可以考虑使用 Bash)。
对文本进行各种操作
在开始使用 UNIX 的各种文本实用程序操作文本之前,需要了解如何获得文本。并且在进行这项工作之前,需要了解 UNIX 的标准输入/输出 (I/O) 流。
标准 C 库(因而,每个 UNIX 程序)定义了三种标准流:输入、输出和错误。有时将它们称为 stdin、stdout 和 stderr,这是在所有 C 程序中用来表示它们的全局变量。
标签: