Linux中的正则表达式:
正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找及替换操作,其中最为重要作用是匹配。
正则表达式与通配符
正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式。
通配符用来匹配符合条件的文件名,通配符是完全匹配。ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了。
通配符必须是完全匹配,如find -name “abc?” 查找到4个字符的文件名其中前三个字符是
abc,列出的abcd、abce等文件
通配符:
元字符 |
作用 |
|
匹配0个或任意多个字符,也就是可以匹配任何内容 |
? |
匹配任意一个字符 |
[ ] |
匹配【】中任意一个字符 |
[-] |
匹配括号中任意一个字符,-代表一个范围,例如:【a-z】代表匹配一个小写字母 |
[^] |
逻辑非,表示匹配不是中括号内的一个字符,【^0-9】代表匹配一个不是数字的字符 |
基础正则表达式
^:^hello会匹配以hello1的行,grep -n “^$” test.txt 匹配空白行并显示行号
. 匹配除了换行符以外任意一个字符。
$:hello$会匹配以hello结尾的行
[ ]:匹配中括号中指定的任意一个字符,只匹配一个字符,要匹配[则要转义