正则表达式: 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替代
对于特殊字符可以加上"\"使其成为正常的字符
更多推荐
Linux正则表达式详解
发布评论