一、正则表达式与通配符
正则表达式:正则表达式用来在文件内容中匹配符合条件的字符串,模式是包含匹配。常用命令比如grep、awk、sed等命令可以支持正则表达。
通配符 :通配符用来匹配符合条件的文件名,模式是完全匹配。ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了。
怎么理解包含匹配和完全匹配?
举个例子,比如我新建两个文件touch abcd a,如果ls a则只会匹配a这个文件,abcd文件不会匹配,要想匹配必须 ls a* 也就是说你怎么写就怎么匹配。
而grep如下图,包含匹配文件内容。
二、基础正则表达式
一些常用举例:
grep "a*" abcd //匹配所有内容,包括空白行,也就是文件本身的内容
grep "aa*" abcd //匹配至少含有一个a的行
grep "aaa*" abcd //匹配最少包含两个连续a的字符串
grep "s..z" abcd //匹配s与z之间有两个字符的行
grep "s.*d" abcd //匹配s与d之间的任意字符
grep ".*" abcd //匹配所有内容
grep -n "^$" abcd //匹配空白行
grep "^[^a-zA-Z]" abcd //匹配不是字母开头的行
grep "\.$" abcd //匹配以 . 结尾的行
领取专属 10元无门槛券
私享最新 技术干货