大数据全系列 教程
1869个小节阅读:467.8k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
正则表达式使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。在文本编辑器里,正则表达式通常被用来检索、替换符合某个模式的文本。在Linux中sed,grep,awk,vim等命令都支持通过正则表达式进行模式匹配。
案例用到的数据文件hello.txt
xxxxxxxxxx
hello world
are you ok?
areyou ok?
areyou are youok?
aaare you ok?
aare you ok
aaaare you ok
abcre you ok?
xxre you ok
are yyyou ok?
xk
zk
ok
yk
zzk
zxzxk
bxx
cxx
dxx
areyou are youok?
zk kz 1
kz zk 2
okk koo 3
zkkz
kzzk
"." 匹配任意单个字符
xxxxxxxxxx
#匹配“f任意单个字符p”
[root@node1 ch4]# grep f.p /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
#或者
[root@node1 ch4]# cat /etc/passwd | grep f.p
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
#
[root@node1 ch4]# grep "a.re" hello.txt
[root@node1 ch4]# grep "a..re" hello.txt
^ 匹配一行的开头
xxxxxxxxxx
# 匹配文件/etc/passwd文件中以r开头的行
[root@node1 ch4]# cat /etc/passwd|grep ^r
root:x:0:0:root:/root:/bin/bash
[root@node1 ch4]# grep ^r /etc/passwd
root:x:0:0:root:/root:/bin/bash
#匹配行首,该行第二个字符一定得是k
[root@node1 ch4]# grep "^.k" hello.txt
xk
zk
ok
yk
zk kz 1
okk koo 3
zkkz
$ 匹配一行的结尾
xxxxxxxxxx
[root@node1 ch4]# cat /etc/group|grep x$
mail:x:12:postfix
[root@node1 ch4]# grep x$ /etc/group
mail:x:12:postfix
#该行最少两个字符,最后一个是k
[root@node1 ch4]# grep ".k$" hello.txt
aare you ok
aaaare you ok
xxre you ok
xk
zk
ok
yk
zzk
zxzxk
kzzk
总结:^$ 匹配空行
xxxxxxxxxx
[root@node1 ch4]# cat /etc/profile|grep ^$
[root@node1 ch4]#
* 不单独使用,它和上一个字符连用,表示匹配上一个字符0次或多次
xxxxxxxxxx
#匹配rt rot root 等等
[root@node1 ch4]# cat /etc/group |grep ro*t
root:x:0:gm
[root@node1 ch4]# grep ro*t /etc/group
root:x:0:gm
#匹配are aare xre,0到多个a字符
[root@node1 ch4]# grep "a*re" hello.txt