Shell正则表达式及实例

一、Shell 正则表达式

基础正则表达式:BRE
扩展正则表达式:ERE,扩展的表达式有+,?,|,(),grep选项-E


. 匹配除换行符之外的任意单个字符

注意是单个字符,比如匹配1234,就应当是1…4,中间是两个点
在这里插入图片描述


^ 匹配以字符串开头的行

可以看到,以abc开头的行都被匹配到,输出那一行
在这里插入图片描述


$ 匹配以字符串结尾的行

可以看到,以fg结尾的行都被匹配到,输出那一行
在这里插入图片描述


* 匹配前面的子表达式(零个或多个)

可以看到,*号之前的一个字符可以是0个或者多个
如果是0个y,就输出x;如果是1个y,就输出xy;如果是2个y,就输出xyy
在这里插入图片描述
Shell正则表达式及实例_第1张图片
Shell正则表达式及实例_第2张图片


+ 匹配前面的子表达式(一个或多个)

在这里插入图片描述


[] 匹配中括号中的任意一个字符

[.-.] 匹配中括号中范围内的任意一个字符

[^] 匹配[^字符]之外的任意一个字符

Shell正则表达式及实例_第3张图片


{n} 匹配确定的n次

在这里插入图片描述


{n,} 至少匹配n次,注意‘ ’

在这里插入图片描述


< 边界符,匹配字符串开始

> 边界符,匹配字符串结尾

Shell正则表达式及实例_第4张图片


() 作为单元,将小括号里面的作为一组

() 作为分组,匹配小括号中的正则表达式或字符

\n 反向引用,n是数字,从1开始编号,表示引用第n个分组匹配的内容
Shell正则表达式及实例_第5张图片


| 匹配两边的任意一个

在这里插入图片描述


\ 转义符,将特殊符号转成原有意义

在这里插入图片描述


二、文本处理简介

命令 描述
grep 默认不支持扩展表达式,加-E选项开启 ERE。如果不加-E使用花括号要加转义符\{\}
egrep 支持基础和扩展表达式
awk 支持egrep所有的正则表达式
sed 默认不支持扩展表达式,加-r 选项开启 ERE。 如果不加-r 使用花括号要加转义符\{\}
支持的特殊字符 描述
\w 匹配任意数字和字母,等效于[a-zA-Z0-9]
\W 与\w 相反,等效于[^a-zA-Z0-9]
\b 匹配字符串开始或结束,等效于\<和\>
\s 匹配任意的空白字符
\S 匹配任意的非空白字符
空白符 描述
\n 换行符
\r 回车符
\t 水平制表符
\v 垂直制表符
\0 空值符
\b 退后一格

你可能感兴趣的:(shell)