正则表达式

正则表达式

bash

  • bash是一个命令处理,运行在文本窗口中,并能执行用户直接输入命令
  • bash还能从文件中读取linux命令.称之为脚本
  • bash只能通配符、管道、命令替换、条件判断等逻辑控制语句

linux正则表达式

分两类

1 基本正则表达式:BRE
2 扩展正则表达式:ERE

正则表达式的意思

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

通过特殊符号的辅助,可以让linux管理员快速过滤、替换、处理所需要的字符串、文本、让工作高效

通常linux运维工作,都是面临大量带有字符串的内容如

  • 配置文件
  • 程序代码
  • 命令输出结果
  • 日志内容

且此类字符串内容,我们常会有特定的需要,查找出符合工作需要的特定的字符串,因此正则表达式就出现了

  • 正则表达式是一套规则和方法
  • 正则工作时以单位运行,一次处理一行
  • 正则表达式化繁为简,提高工作效率
  • linux仅爱三剑客(sed、awk、grep)

正则表达式应用非常广泛,应用在如python、java、pertl、linux下普通命令无法使用正则表达式的,只能使用三剑客

通配符是大部分普通命令支持的,用于查找文件或目录,而正则表达式是通过三剑客命令在文件(数据流)中过滤内容的

linux三剑客

文本处理工具,均支持正则表达式引擎

  • grep:文件过滤工具。(模式:pattern)
  • sed:stream editor,流编辑器;文本编辑器
  • awk:linux的文件报告生成器(格式化文本),linux上是gawk

正则表达式分类

linux三剑客主要分两类

  • 基本正则表达式(BRE、basic regular expression)

    BRE对应元字符有 ^$[]*
    
  • 扩展正则表达式

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

基本正则表达式BRE集合

  • 匹配字符
  • 匹配次数
  • 位置锚定
符号 作用
^ 尖角号,用于模式的最左侧,如"^lodbay",匹配以oldboy单词开头的行
$ 美元符,用于模式的最右侧,如"lodboy$",表示已lodboy单词结尾的行
^$ 组合符,表示空行
. 匹配任意一个且只有一个字符,不能匹配空行
\ 转义字符,让特殊含义的字符,现出原形,还原本意,例如 \ .代表小数点
* 匹配前一个字符(连续出现)0次或1次以上,重复0代表空,即匹配所有内容
.* 组合符,匹配所有内容
^* 组合符,匹配任意多个字符开头的内容
.*$ 组合符,匹配以任意多个字符结尾的内容
[abc] 匹配[]集合内的任意一个字符,a或b或c,可以写[a-c]
[^abc] 匹配除了后面的任意字符,a或b或c,表示对[abc]取反
posted @ 2022-08-22 17:08  一直前进  阅读(37)  评论(0编辑  收藏  举报