Unix 文本搜索与正则表达式入门
在 Unix 编程中,处理文本数据是一项非常常见的任务。Unix 程序员更倾向于处理文本行,因为文本数据比二进制数据更加灵活,而且 Unix 系统提供了许多工具,方便进行文本的切片和处理。本文将介绍 shell 脚本中反复出现的两个基本操作:文本搜索和文本替换,重点聚焦于文本搜索以及相关的正则表达式知识。
1. 文本搜索工具
在 Unix 中,用于查找文本(或者用 Unix 行话来说,“匹配文本”)的主力程序是 grep 。在 POSIX 系统中, grep 可以使用两种正则表达式风格之一,也可以匹配简单字符串。
传统上,有三个独立的程序用于搜索文本文件:
- grep :原始的文本匹配程序,使用 POSIX 定义的基本正则表达式(BREs)。
- egrep :“扩展的 grep ”,使用扩展正则表达式(EREs),这是一种更强大的正则表达式表示法,但使用起来可能在计算上更昂贵。在现代系统中,这种差异已经很小。
- fgrep :“快速 grep ”,此变体使用为固定字符串匹配优化的算法来匹配固定字符串。它是唯一可以并行匹配多个字符串的变体。
1992 年的 POSIX 标准将这三个变体合并为一个 grep 程序,其行为由不同的选项控制。POSIX 版本甚至可以为 BREs 和 EREs 匹配多个模式。虽然 fgrep
超级会员免费看
订阅专栏 解锁全文
2933

被折叠的 条评论
为什么被折叠?



