正则表达式: Regual Expression, REGEXP
由一类特殊字符及文本字符所编写的模式,其中有些字符不表示其字面意义,而是用于表示控制或通配的功能;
一、正则表达式的意义
通过特殊符号的辅助,可以让linux管理员快速过滤、替换、处理所需要的字符串、文本,让工作高效。
通常Linux运维工作都要面临大量带着字符串的内容, 如:
且此类字符串内容,我们常会有特定的需要,查找出符合工作需要的特定的字符串,因此正则表达式就出现了
- 正则表达式是一套规则和方法
- 正则工作时以单位进行,一次处理一行
- 正则表达式化繁为简,提高工作效率
- linux仅受三剑客(sed、awk、grep)支持,其他命令无法使用
正则表达式应用非常广泛,应用在如Python、Java、Perl等,Linux下普通命令无法使用正则表达式的,只能使用三剑客。
通配符是大部分普通命令都支持的,用于查找文件或目录,而正则表达式是通过三剑客命令在文件(数据流)中过滤内容的
二、Linux的三剑客
文本处理工具,均支持正则表达式引擎
- grep:文本过滤工具,(模式: pattern)工具
- sed: stream editor,流编辑器;文本编辑工具
- awk:Linux的文本报告生成器(格式化文本),Linux上是gawk
三、正则表达式的分类?
Linux三剑客主要分两类
- 基本正则表达式(BRE、basic regular expression)
对应的元字符有: ^? $ . [] *
- 扩展正则表达式(ERE、extended?regular expression)?
ERE在BRE基础上, 增加了: () {} ? + |
?3.1、基本正则表达式BRE集合
3.2、扩展正则表达式ERE集合
注: 扩展正则必须要grep -E 才能生效
注:
grep命令需要使用参数-E即可支持正则表达式
egrep不推荐使用,使用grep -E替代
对于特殊字符可以加上"\"使其成为正常的字符 ?
|