前言:在linux运维中,经常会使用到正则表达式,并且在其它编程如python和很多软件如nginx,也都会使用正则表达式,这是一个另初学者头皮发麻的玩意儿,类似这种东东:curl -s http://mirrors.sohu.com/php/ | egrep -o "[5-9].[0-9].[0-9]" | sort -ur,在我当年学习过程中,曾一度想略过不学,但发现如果想高效使用linux,这是必须跨越的障碍,而当我逐步由简单到复杂的使用正则后,发现这个玩意儿是如此好用,经常能够成就感满满!!在本系列教程中,我将由浅入深,结合生产实际,尽量用通俗易懂的语言把我的学习心得一一展示,相信认真学完本系列教程,你也将逐步可以得心应手的应用到自己的工作中解决实际问题!
一、正则表达式的作用:在查找过程中按我们的需要找出相应的字符。
例如我们可能会有这样的需求:如在安装mysql数据库的过程中,为了更安全,想把默认的3306端口改成其它如54321端口,我们就需要在mysql的配置文件中查找到3306这个字符串然后替换为54321,此时就可以使用正则去匹配了;
二、正则表达式的使用范围:如linux的vim编辑器;linux的grep、awk、sed命令中;nginx、apache软件中;python编程中等等。
三、正则表达式的2个简单案例:
下面我们使用linux的grep命令进行操作,以便对正则有个基本了解。grep命令的作用是:在文件中查找指定内容,并在屏幕上打印出包含该内容的行。下面请大家使用xshell客户端软件登录centos服务器或虚拟机,跟我一步步操作。
第1个案例:在提示符后输入:grep '^root' /etc/passwd,grep命令在前,把要查找的^root放在单引号中,后接要查找的文件,这条命令的意思是:在/etc/passwd这个文件中查找以root开头的行并打印结果在屏幕上,root是要查找的内容,^就是正则表达式中的一种专用字符,表示 以...开头,这种专用字符给起了个名儿,叫做元字符。
![f5f352fb8e63e7bb2596930c0818fb60.png](https://i-blog.csdnimg.cn/blog_migrate/4cc71a6019d73c398eb2aaaa4c54949e.jpeg)
注:/etc/passwd这个文件记录了centos系统中所有的用户基本信息,每个用户对应一行
第2个案例:在提示符后输入:grep 'ro*t' /etc/passwd,这条命令的意思是:在/etc/passwd这个文件中查找包含这样字符的行:以r开头,后跟零个或任意个o,最后字符为t,并打印结果在屏幕上,ro*t是要查找的内容,ro后的*也是正则表达式中的一种元字符,而位于*这个元字符前面1位的o,又起了个名字,称之为前导字符,*这个元字符的作用是:前导字符出现零次或任意多次。
![5d6e38c49cfe77c663a87b16c289a232.png](https://i-blog.csdnimg.cn/blog_migrate/eb458b1abeeb3ee72d829b2193530266.jpeg)
我们看到查找到的结果中,有root和rt,root中的o出现了2次,rt中没o,即o出现了零次;
通过上面2个小案例,给出正则表达式中的2个基本名词:元字符和前导字符,并且认识了2个常用元字符^和*,下一篇我们将全面介绍更多常用元字符,喜欢的朋友请评论转发,也欢迎大家多提意见,共同进步!!