第四章Shell编程之正则表达式与文本处理器

文本处理有三剑客:grep sed awk

通配符:只能匹配文件名与目录名,不能匹配文件的内容

*匹配任意一个或者多个字符

?匹配任意一个字符(就是匹配单个字符)

[ ] 匹配范围内的任意单个字符

正则表达式:有一类特殊字符以及文本字符所编写的一种模式,用来处理文本当中的内容,其中的一些字符不表示字符的字面含义,表示控制或者通配的功能

基本正则表达式

字符匹配,元字符

. 匹配任意的单个字符,可以是一个汉字

\表示转义符,\.就是一个点 

 ()括号表示分组的意思

\(\),就是括号

[ ] 匹配指定范围内的任意单个字符第四章Shell编程之正则表达式与文本处理器_第1张图片第四章Shell编程之正则表达式与文本处理器_第2张图片

第四章Shell编程之正则表达式与文本处理器_第3张图片

[^]取反,指定范围之外的

第四章Shell编程之正则表达式与文本处理器_第4张图片

[[:space:]]包含空格,tab键,换行的空格,回车的空格

[[:blank:]] 空白字符(空格和tab制表符)

通配符不能完全匹配大小写, 正则可以

 第四章Shell编程之正则表达式与文本处理器_第5张图片

第四章Shell编程之正则表达式与文本处理器_第6张图片

表示匹配不是a.txt .是或者 z.txt的文件(除了不匹配a或者z,其他都匹配)

正则表达式中表示次数的表达式

*匹配前面的字符任意次,0次也行,无数次也行,有多少匹配多少,没有也行

第四章Shell编程之正则表达式与文本处理器_第7张图片 .*匹配任意长度的字符,至少要有一次,不包括0次

第四章Shell编程之正则表达式与文本处理器_第8张图片

\?匹配前面的字符0次或者一次,可有可无

第四章Shell编程之正则表达式与文本处理器_第9张图片

\+ 匹配前面的字符至少1次,最多可以无数次

第四章Shell编程之正则表达式与文本处理器_第10张图片

\{n\}匹配前面的字符等于n次,必须连续出现才能匹配

 \{m,n\}匹配前面的字符,最少m次,最多n次

第四章Shell编程之正则表达式与文本处理器_第11张图片

\{,n\}匹配前面的字符,最多n次(只要出现几次,出现都算,除非没有,只要前面的字符有,都算)第四章Shell编程之正则表达式与文本处理器_第12张图片

\{n,\}匹配前面的字符至少n次

第四章Shell编程之正则表达式与文本处理器_第13张图片

位置锚定:

^ 以什么为开头,在模式的左侧  ^root

 $ 以什么为结尾,在模式的右侧 r$

第四章Shell编程之正则表达式与文本处理器_第14张图片

^root$ 用于匹配整行,而且整行中只有以后个root

第四章Shell编程之正则表达式与文本处理器_第15张图片

^$ / ^[[:space:]]$  匹配空行

第四章Shell编程之正则表达式与文本处理器_第16张图片 第四章Shell编程之正则表达式与文本处理器_第17张图片

词首锚定 \< 或者 \b

第四章Shell编程之正则表达式与文本处理器_第18张图片

 词尾锚定 \> 或者 \b 

第四章Shell编程之正则表达式与文本处理器_第19张图片

匹配整个单词

 分组()

第四章Shell编程之正则表达式与文本处理器_第20张图片第四章Shell编程之正则表达式与文本处理器_第21张图片

\| 表示逻辑或 

扩展正则就是不写\ 

但是有要求 grep -E 或者egrep

练习一条命令显示出文件内容 

第四章Shell编程之正则表达式与文本处理器_第22张图片

练习

显示/etc/passwd中以sh结尾的行

第四章Shell编程之正则表达式与文本处理器_第23张图片 

 

查找/etc/inittab中含有“以s开头,并以d结尾的单词”模式的行

查找ifconfig命令结果中的1-255之间的整数

第四章Shell编程之正则表达式与文本处理器_第24张图片

显示/var/log/secure文件中包含“Failed”或“FAILED”的行

在/etc/passwd中取出默认shell为bash的行

第四章Shell编程之正则表达式与文本处理器_第25张图片

高亮显示passwd文件中冒号,及其两侧的字符

第四章Shell编程之正则表达式与文本处理器_第26张图片

以长格式列出/etc/目录下以ns开头、.conf结尾的文件信息

你可能感兴趣的:(正则表达式,linux,运维)