栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux正则表达式

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux正则表达式

正则表达式:Regual Expression,REGEXP

由一类特殊字符及文本字符所编写的模式,其中有些字符不表示其字面意义,而是用于表示控制或调配的功能

分两类:

1.基本正则表达式:BRE

2.扩展正则表达式:ERE

正则表达式的意义

  • 处理大量的字符串
  • 处理文本

通过特殊符号的辅助,可以让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)

BRE对应元字符有^ $ . [ ] *

  • 扩展正则表达式(ERE、extended regular expression)

ERE在BRE基础上,增加上() {} ? + | 等字符

 基本正则表达式BRE集合

  • 匹配字符
  • 匹配次数
  • 位置锚定
符号作用
^尖角号,用于模式的最左侧,如"^oldboy",匹配以oldbody单词开头的行

$

美元符,用于模式的最右侧,如"oldboy$",表示以oldboy结尾的行
^$组合符,表示空行
.匹配任意一个且只有一个字符,不能匹配空行
转义字符,让特殊含义的字符,现出原形,还原本意,例如 .代表小数点
*匹配前一个字符(连续出现)0次或1次以上,重复0次代表空,即匹配所有内容
.*组合符,匹配所有内容
^.*组合符,匹配任意多个字符开头的内容
.*$组合符,匹配任意多个字符结尾的内容
[abc]匹配[]集合内的任意一个字符,a或b或c,可以写成[a-c]
[^abc]匹配除了^后面的任意字符,a或b或c,^表示对[abc]取反

扩展正则表达式ERE集合

扩展正则必须用grep -E才能生效

字符作用
+匹配前一个字符1次或多次
[:/]+匹配括号内的":"或者"/"字符1次或多次
?匹配前一个字符0次或1次
表示或者,同时过滤多个字符串
()分组过滤,被括起来的内容表示一个整体
a{n,m}匹配前一个字符最少n次,最多m次
a{n,}匹配前一个字符最少n次
a{n}匹配前一个字符正好n次
a{,m}匹配前一个字符最多m次

Tip:

1. grep命令 需要使用参数 -E即可支持正则表达式

2. egrep不推荐使用,使用grep -E替代

3. grep不加参数,得在特殊字符前面加""反斜杠,识别为正则

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/884618.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号