在正文开始之前向大家介绍一个在线的很好用的正则表达式规则测试的网站 https://regex101.com/
本文简要介绍Shell编程中正则表达式的相关内容,所谓正则表达式(regular expression)是指一种字符串匹配的模式(pattern),其可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。值得一提的是,不同的编程语言的正则表达式大同小异,但略有不同。
对正则表达式进行详细展开前首先要明确其与通配符的不同:
- 正则表达式用来在文件中匹配符合条件的字符串,其属于包含匹配。所谓包含匹配是指当某一行内容中包含符合正则表达式的字符串时,该行能够被筛选出来,因此当正则表达式更详细时,筛选出的内容更为具体。grep、awk、sed等命令可以支持正则表达式。
- 通配符一般用来匹配符合条件的文件名,通配符是完全匹配。ls、cp、find这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配。
- 一般可以认为,正则表达式用于字符串匹配,即文件内容的匹配,而通配符用于文件名的匹配,两者的相同符号具有不同的含义
了解了正则表达式与通配符的不同之后,正式进入正则表达式的学习,有关正则表达式的一些基础规则(部分规则)如下
元字符 | 作 用 |
* | 前一个字符匹配0次或任意多次 |