正则表达式(regular expression, RE)是一种字符模式,用于在查找过程中匹配指定的字符。
在大多数程序里,正则表达式都被置于两个正斜杠之间;例如/lv[o0]e/就是由正斜杠界定的正则表达式,它将匹配被查找的行中任何位置出现的相同模式。在正则表达式中,元字符是最重要的概念。
shell通配符 元字符
* 任意多个字符 ? [ ] 指定的一个字符 [ - ] 指定范围的一个字符
正则元字符:
基本表达式 : . 单个字符 [ ] [^]指定的一个字符 [ - ] 指定范围的一个字符
次数匹配: * 任意次数 (>=0) \? 0或者1个
x\{m\} x重复出现m次 x\{m,\} x重复出现m次以上 x\{m,n\} x重复出现至少m,最多到n次
锚定: ^ 行首 $ 行尾 \ < \b 锚定词首 \> \b 锚定词尾
\( .\) 匹配稍后将要使用的标签 和 \1 一起使用
扩展元字符(使用 \ 转义或者egrep):
+ 1个或者多个(>=1使用 \ 转义或者egrep) ? 0或者1个 a|b 或者 lo( able|re)组字符
( ...)( ...) 匹配稍后将要使用的标签 和 \1\2\3一起使用 x{m} x{m, } x{m,n}
POXIX字符集
[:alnum:] 字母与数字字符 [:alpha:] 字母字符 [:blank:] 空格与制表符
[:digit:]数字字母 [:lower:] 小写字母 [:upper:] 大写字母
[:punct:] 标点符号 [:space:] 包括换行符、回车等在内的所有空白
空行 /^$/ /^[\t]*$/ 注释行 /^#/ /^[\t]*#/
grep -i 忽略大小写 -l只列出匹配行所在的文件名 -n在每一行前面加上他所在文件中的相对行号
-c 显示匹配成功的行数 -s 禁止显示文件不存在或者文件不可读的错误信息
-q静默 -v反向查找 -R递归 -o显示匹配的行
找到返回0 没有找到返回1 找不到文件路径返回2