感谢支持
我们一直在努力

Linux基础:正则表达式

学习Linux并且想在Linux技术圈子里,有所发展,那么shell scripts为必学课程,shell scripts 没有固定的语法,并介于程序实际语言与命令之间的,形式和功能上更接近与前者,但并不是用户程序开发,无需编译。这个程序是纯文本文件的,将一些shell的语法和指令(包括外包指令)写在里面。搭配正则表达式。管道或别的功能实现我们的想要处理目的。


经过上面的介绍,我们提到正则表达式,命令和一些程序设计语言,这篇文章中,我先介绍下正则表达式的用法。


说的简单点正则表达式就几个符号:


^  只匹配行首


$  只匹配行尾


\   用来屏蔽一个元字符的特殊含义,因为有时在shell中一些元字符有特殊含义,可以用\使其失去原有的意义


.   匹配任意单字符


*  一个单子符后紧跟*,匹配0个或多个此单字符


[]  匹配[]内字符,可以是一个单字符,也可以是字符序列。也可以用- 表示[]内字符的序列范围,如用[1-5][a-z]


duyunlong\{n\} 用来匹配前面duyunlong出现的次数。n为次数


^符号的用法



可以看到,在名为duyunlong的目录底下有很多文件,如果我想找出以h开头的文件



这样就找出了,自己想要的文件,反之匹配行尾用$,


如果想要找文件开头第三个字母为e的文件,我们用下面的命令,并了解 英文句号.  的用法,如下图



除此之外,还可以用^$来查找空行


下面来看看\转意字符的用法,有时候需要查找一些字符串,而他们包含了系统指定为特殊字符的一个字是特殊字符?一般意义上讲,下列字符可以认为是特殊字符:


$  .   ‘  ”  *  []  ^  |  ( )  \  +  ?


假定要匹配包含字符”.” 的各行而 “.” 代表匹配任意单字符的特殊字符,因此需要屏蔽其含义。操作如下:


\.


上述模式不认为反斜杠后面的字符是特殊字符,而是一个普通的字符,及英文句点。


假定要匹配包含^的各行,将反斜杠放在它们的前面就可以屏蔽其特殊含义。如下:


\^


如果要在正则表达式中匹配以*.jpg结尾的文件,可以做如下操作


\*\.jpg


使用[]匹配一个范围或集合


使用[]匹配特定的字符串或字符串集,可以哟个逗号将括号内要匹配的不同字符集分开,但并不强制要这样做(一些系统提倡在复杂的表达式中使用逗号),这样就可以增加模式的可读性。


使用”-“来表示字符串的范围,表明字符串的范围从”  -“左边的字符开始到” –    “右边的字符结束。


如果熟知一个字符串匹配操作,应该常用[]模式


假定要匹配任意一个数字,可以使用:


[0123456789]


然后用”-“符号来简化


[0-9]


字母的话


[a-z],


如要匹配任意字母


[a-zA-Z]


如要匹配任意数字或是字母,模式如下


[A-Za-z0-9]


在字符序列结合使用中,可以用[]指出字母的范围。假定匹配一个单词,以s开头,中间的任意一个字母,以t结尾那么操作如下:


a[a-z A-Z]t

赞(0) 打赏
转载请注明出处:服务器评测 » Linux基础:正则表达式
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏