SHELL正则表达式 [操作系统入门]

编程

简介

正则表达式其主要作用是通过一些拥有特殊含义得字符

完成日常工作中我们需要得特定字符串匹配,或者从输出内容中匹配出符合我们需要得内容。

分类

  • 基础正则表达式
  • 扩展正则表达式

基础正则表达式

正则表达式

简述

是否支持

转义字符

支持

^

以指定字符开头

支持

$

以指定字符结尾

支持

>

词尾锚定

支持

.

任意单个字符

支持

*

匹配前面的字符0任意次

支持

[]

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

支持

[-]

范围匹配

支持

?

匹配前面字符0次或一次

不支持

+

匹配 前面的字符一次或多次

不支持

()

匹配字符串

不支持

{n}

匹配前面的单词或字符串n次

不支持

{m,}

匹配前面的单词或字符串最少m次

不支持

{,n}

匹配前面的单词或字符串最多m次

不支持

{m,n}

匹配前面的单词或字符串最少n次最多m次

不支持

I

匹配号两边任意一项

不支持

注意:如上基础扩展正则表达式中不支持的表达式,除Command本身就可以通过特定参数

开启扩展支持的选项外,还可以通过转义字符完成支持,请参考如下几个实例

案例演示:

1丶即可通过转义符完成本不支持基础的正则予以支持
grep ‘ro{2,}‘ /etc/passwd

2丶grep&sed默认开启扩展的选项演示如下
egrep ‘ro{2,}‘ /etc/passwd
grep -E ‘ro{2,}‘ /etc/passwd
sed -r -n ‘/ro{2,}/‘p /etc/passwd

扩展正则表达式

正则表达式

简述

是否支持

转义字符

支持

^

以指定字符开头

支持

$

以指定字符结尾

支持

>

词尾锚定

支持

.

任意单个字符

支持

*

匹配前面的字符0任意次

支持

[]

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

支持

[-]

范围匹配

支持

?

匹配前面字符0次或一次

支持

+

匹配 前面的字符一次或多次

支持

()

匹配字符串

支持

{n}

匹配前面的单词或字符串n次

支持

{m,}

匹配前面的单词或字符串最少m次

支持

{,n}

匹配前面的单词或字符串最多m次

支持

{m,n}

匹配前面的单词或字符串最少n次最多m次

支持

I

匹配号两边任意一项

支持

常用的POSIX字符类

正则表达式

简述

[:upper:]

匹配大写字母

[:lower:]

匹配小写字母

[:space:]

匹配空格字符

[:alpha:]

匹配任意字母包含大小写

[:digit:]

匹配任意一个数字

[:punct:]

匹配标点符号

[:alnum:]

匹配字母或者数字

案例演示

1丶匹配标点符号
[[email protected] ~]# grep ‘[[:punct:]]‘ /etc/fstab

2丶匹配任意字母或者数字(字母不区分大小写)
[[email protected] ~]# echo "I m Love ZhongGuo 555 ; , ::"|grep ‘[[:alnum:]]‘
[[email protected] ~]# grep ‘[[:alnum:]]‘ /etc/fstab

3丶只匹配小写字母
[[email protected] ~]# touch {a..z}
[[email protected] ~]# touch {A..Z}
[[email protected] ~]# touch {1..26}
[[email protected] ~]# ls [[:lower:]]

4丶只匹配大小字母
[[email protected] tmp]# ls [[:upper:]]

5丶只匹配数字
[[email protected] tmp]# ls [[:digit:]]
[[email protected] tmp]# ls [[:digit:]][0-9]

6丶匹配空格
[[email protected] tmp]# touch a
[[email protected] tmp]# touch a
[[email protected] tmp]# touch a
[[email protected] tmp]# ls|grep ‘[[:space:]]‘

SHELL正则表达式

以上是 SHELL正则表达式 [操作系统入门] 的全部内容, 来源链接: utcz.com/z/519043.html

回到顶部