正则表达式

正则表达式

正则表达式匹配的的是文本内容,

由一类特殊字符以及文本字符所编写的一个模式,模式又来匹配文件当中内容(字符).

检验我们输入的内容是否满足规定,格式,长度等等要求

主要用来匹配文本内容,命令的结果也可以用正则表达式

通配符:只用能用于匹配文件名和目录名,不能匹配文件的内容和命令结果

表达式

一般和grep配合使用

基本正则 元字符匹配

. 任意单个字符,也可以是一个汉字

ls | grep '.'

\ 转义符

ls | grep '\.'	还是所搜点号

[ ] 匹配指定范围内的任意单个字符或者数字

grep '[a-b]' xy102.txt

[ ] 匹配空格

grep '[ ]' xy102.txt

[^] 取反

grep '^a' xy102.txt  	除了a之外都显示

^#

grep '^#' xy102.txt		以#号开头的

^$ 空行

grep '^$' xy102.txt		

*匹配前面的字符任意次,0次也算

贪婪模式,尽可能的匹配

但goo,最多只能再多一位

例如grep ‘gooi8*’

再多一位就不能了 grep ‘gooi88*’

echo gggle | grep 'g*'
echo ggle | grep '1*gle'

.* 匹配前面的任意字符,至少要有1次,匹配所有,但至少要有一个

echo ggle | grep '2.*gle'	以2开头的gle,至少得有1个

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

echo gole | grep 'o\?le'

\+ 匹配的字符至少要有一次

echo gole | grep 'o\+le'

\{n\} 匹配前面的字符=n次,或者小于n,不能大于n,而且前面的字符要连续出现

grep 'a\{5\}' test1.txt

\{m,n\} 匹配前面的字符至少m次,至多n次,也需要是连续出现,超出的不在匹配范围

grep 'a\{2,5\}' test1.txt

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

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

扩展正则

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

cat /etc/passwd |grep -E ‘(sh)$’

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

cat /etc/inittab | grep -E ‘\bs[a-zA-Z]*d\b’

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

ifconfig|grep -E ‘(\b1[0-9][0-9]\b)|(\b2[0-9][0-9]\b)|(\b[0-9][0-9]\b)|(\b[1-9]\b)’

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

cat /etc/passwd|grep -E ‘bash$’

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

cat /etc/passwd|grep -E ‘.?😗:.?’

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
片转存中…(img-n2dmPNaM-1719234125285)]

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

cat /etc/passwd|grep -E ‘.?😗:.?’

[外链图片转存中…(img-aYlRvxQs-1719234125285)]

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值