0
点赞
收藏
分享

微信扫一扫

(0基础学Linux系列)2.03 Linux正则

1.1 正则表达式

字符 作用
^ 尖角号 表示匹配以尖角号后面的单词开头的行
$ 美元符 表示匹配以美元符后面的单词结尾的行
^$ 组合符 表示空行
. 点号 匹配任意一个且只有一个字符
\ 转义字符 让有特殊含义的字符输出自身
* 星号 重复前一个字符(连续出现)0次或N次
.* 组合符 匹配所有内容
^.* 组合符 匹配任意多个字符开头的内容
.*$ 组合符 匹配任意多个字符结尾的内容
[abc] 匹配[]集合内的任意一个字符
[^abc] 匹配不包含^后的任意字符

1.1.1 ^ 尖角号 表示匹配以尖角号后面的单词开头的行

# grep "^a" a.txt

image20220516093035700.png

1.1.2 $ 美元符 表示匹配以美元符后面的单词结尾的行

# grep "d$" a.txt

image20220516093355763.png

1.1.3 ^$ 组合符 表示空行

# grep "^$" a.txt

image20220516093619467.png

1.1.4 . 点号 匹配任意一个且只有一个字符

# 匹配所有字符(不包括空行)
grep . a.txt

# 匹配z和z后一个字符
grep "z." a.txt

# 匹配x和x前一个字符
grep ".x" a.txt

image20220516094020146.png

1.1.5 \ 转义字符 让有特殊含义的字符输出自身

# grep "\^" a

image20220516094349827.png

1.1.6 * 星号 重复前一个字符(连续出现)0次或N次

# grep "a*" a.txt

image20220516094723700.png

1.1.7 .* 组合符 匹配所有内容

# grep ".*" a.txt

image20220516094955233.png

1.1.8 ^.* 组合符 匹配任意多个字符开头的内容

# grep "^.*zx" a.txt

image20220516095108537.png

1.1.9 .*$ 组合符 匹配任意多个字符结尾的内容

# grep "fq.*$" a.txt 

image20220516095203538.png

1.1.10 [abc] 匹配[]集合内的任意一个字符

# grep "[abc]" a.txt 

image20220516095327060.png

1.1.11 [^abc] 匹配不包含^后的任意字符

# grep "[^abc]" a.txt

image20220516095458420.png

1.2 扩展正则

字符 作用
+ 加号 匹配前一个字符1次或多次
? 问号 匹配前一个字符0次或1次
| 管道 表示用或的方式找出数个字符串
() 括号 分组过滤被括起来的东西表示一个整体
\n 引用前面\(\)的内容 n为数字
[: /]+ 匹配括号内的:或/字符1次或多次
a{n,m} 匹配前一个字符最少n次,最多m次
a{n,} 匹配前一个字符最少n次
a{n} 匹配前一个字符正好n次
a{,m} 匹配前一个字符最多m次

1.2.1 + 加号 匹配前一个字符1次或多次

# egrep "wr+y" b.txt

image20220516101944528.png

1.2.2 ? 问号 匹配前一个字符0次或1次

# egrep "wr?" b.txt

image20220516102120403.png

1.2.3 |管道 表示用或的方式找出数个字符串

# egrep "gd|good" b.txt

image20220516102619256.png

1.2.4 () 括号 分组过滤被括起来的东西表示一个整体

# egrep "g(la|oo)d" b.txt

image20220516102811520.png

1.2.5 \n 引用前面()的内容 n为数字

# sed -n 's/g\(oo\)d/b\1d/p' b.txt

image20220516103833043.png

1.2.6 [: /]+ 匹配括号内的:或/字符1次或多次

# egrep "[:/]+" b.txt

image20220516103945377.png

1.2.7 a{n,m} 匹配前一个字符最少n次,最多m次

# egrep "a{5,6}" c.txt

image20220516105900839.png

1.2.8 a{n,} 匹配前一个字符最少n次

# egrep "a{3,}" c.txt

image20220516110041784.png

1.2.9 a{n} 匹配前一个字符正好n次

# egrep "a{3}" c.txt

image20220516110510286.png

1.2.10 a{,m} 匹配前一个字符最多m次

# egrep "a{,3}" c.txt

image20220516113947232.png

举报

相关推荐

0 条评论