开始之前
了解本教程中包含的内容以及如何最好地利用本教程 。
关于本系列
这个包括四个部分的系列教程从头开始介绍 Unix6杂诤芫妹挥惺褂美?UNIX 操作系统的用户来说,这个初始的教程是个很好的温习 。对于具有 Windows?使用经验的新的 UNIX 用户来说,它也很有价值,因为其中参考了 Windows,并将两者进行了比较 。第二个教程重点讲述 vi 文本编辑器,该编辑器是功能最强大(也最神秘)的可用 UNIX 实用程序之一 。本教程向您讲授有关使用正则表达式的 UNIX 命令行过滤器的知识,包括 grep、sed 和 awk 。
关于本教程
要发挥 UNIX 命令行过滤器(如 grep、sed 和 awk)背后的强大功能,您需要非常熟悉正则表达式 。本教程向新用户讲授其中每个实用程序的功能和如何使用正则表达式来操作文本 。您将首先使用一个简单和好玩的 grep 示例,然后继续研究 sed 和 awk 的实际示例 。
目标
本教程的目标是使 UNIX 和 Linux?用户习惯于使用这三个可用于快速和高效地搜索和更改数据的强大命令行工具 。本教程开头将解释许多 UNIX 实用程序(及编程语言)基本框架中使用的正则表达式 。随后的各个部分将给出与 grep、sed 和 awk 一起使用的正则表达式的示例 。
先决条件
对于本教程,您需要对命令行有基本的了解 。对于本教程的某些部分,了解如何在 UNIX 中使用 stdin、stdout 和 pipe 来处理输入和输出是有所帮助的 。
系统要求
在任何运行类 UNIX 操作系统的计算机上拥有您自己的帐户,这是完成本教程所需的要求 。类 UNIX 操作系统包括 IBM AIX?操作系统、Linuxerkeley Software Distribution (BSD)、Mac OS?X(通过终端来访问命令行),以及其他许多系统 。
正则表达式
正则表达式是一个字符串,旨在用于搜索或替换另一个字符串 。初看起来,这似乎是一个相当基本的功能 。大多数用户都熟悉几乎每个图形文本编辑器或字处理应用程序中都有的搜索和替换功能 。如果将这个基本的搜索和替换功能比作计算器,则正则表达式可比作全功能的计算机 。将正则表达式用于搜索条件的强大功能不应被低估 。
使用正则表达式的过滤器
一些基于 Unix 的最强大命令行工具使用了正则表达式,包括 grep、sed 和 awk(以及包括 Perl 在内的一些编程语言) 。在从基础 UNIX 命令行用户转变为真正的超级用户时,学习如何使用正则表达式是一个必需步骤 。存在一些不同版本的正则表达式语法和多个版本的 grep、sed 和 awk,因此本教程将集中于每种实现中都具有的非常标准的最常见构造 。不要忘了参考您系统的 man 页,以获得有关语法和命令行选项的细节 。
基础
在探索使用正则表达式的 UNIX 应用程序之前,了解基础知识是非常重要的 。在本部分中,您只需继续往下阅读 。稍后您将在 grep 中尝试一些示例 。
基本搜索
正则表达式由一些普通字符和特殊字符组成,其中的特殊字符指示搜索条件 。在大多数基本情况下,正则表达式中也许根本就没有使用特殊字符 。例如,如果您只是希望使用词条 golf 作为搜索条件,则可以输入以下命令:
golf
这就是一个正则表达式!它搜索单词 golf 的所有实例 。正则表达式区分大小写,因此这将搜索 golf 的所有实例,但是不会查找 Golf 的实例 。
使用方括号
若要同时搜索 golf 和 Golf,您可以使用方括号(它们是正则表达式中的特殊字符),并列出一串要搜索的各个字符 。这类似于搜索中的搜索(这就是正则表达式背后的神奇之处) 。
[Gg]olf
同样的概念也适用于任何字符列表——而不只是用于区分大小写 。例如,您可能希望搜索 golf 和 gelf(您虚构的一种新体育运动):
推荐阅读
- UNIX 新手指南,第 2 部分: vi 文本编辑器
- UNIX 新手指南: 一些很好的 Shell 诀窍
- 使用 UNIX System V IPC 机制共享应用程序数据
- iphone11id设置
- 和大6小3的第一次接触
- 利用 UNIX 脚本来管理 DS4000 磁盘阵列系统
- 对话 UNIX,第 13 部分: 另外十种命令行组合
- UNIX 生产力技巧
- UNIX 新手指南,第 1 部分: 文件维护工具
- 使用 UNIX find 命令的高级技术