grep 选项
选项 |
作用 |
-i |
忽略大小写 |
-v |
反转匹配 |
-n |
显示行号 |
-R |
递归目录下所有文件 |
-A |
正则表达式匹配项之后的行数 |
-B |
正则表达式匹配项之前的行数 |
-e |
使用多个 -e 选项可以提供多个正则表达式 |
-E |
使用 egrep |
-F |
使用 fgrep |
1. 字符匹配
符号 |
匹配项 |
. |
任意单个字符 |
[] |
[] 内任意单个字符 |
[^] |
除了 [] 内任意单个字符 |
[[:alnum:]] |
小写 a-z,大写 A-Z,数字 0-9 范围内任意单个字符 |
[[:alpha:]] |
小写 a-z 和 大写 A-Z 范围内任意单个字符 |
[a-z] 或 [[:lower:]] |
小写 a-z 范围内任意单个字符 |
[A-Z] 或 [[:upper:]] |
大写 A-Z 范围内任意单个字符 |
[[:digit:]] |
数字 0-9 范围内任意单个字符 |
[[:punct:]] |
除空格和字母数字以外的任何可打印字符 |
2. 次数匹配
符号 |
匹配内容 |
* |
匹配前一个字符任意次,>=0 次 |
\? |
匹配前一个字符 0 或 1 次 |
\+ |
匹配前一个字符大于等于 1 次 |
\{\} |
\{m\} 匹配前一个字符 m 次,\{m,n\} 匹配前一个字符 m 到 n 次,
\{m,\} 匹配前一个字符 >= m 次,\{0,n\} 匹配前一个字符 <= n 次 |
3. 位置锚定
符号 |
匹配内容 |
^ |
行首定位符 |
$ |
行尾定位符 |
^$ |
空白行 |
\<char |
起始字界符,或使用 \bchar |
char\> |
结束字界符,或使用 char\b |
4. 分组
符号 |
匹配内容 |
\(\) |
匹配 \(\) 连续字符串,而不是单个字符 |
\| |
或者,匹配 \| 左侧或右侧字符串 |
egrep
egrep 使用扩展正则表达式,相当于 grep -E,用法基本与 grep 相同,只是某些符号不需要转义。
1. 次数匹配
符号 |
匹配内容 |
? |
匹配前一个字符 0 或 1 次 |
+ |
匹配前一个字符大于 1 次 |
{} |
{m} 匹配前一个字符 m 次,{m,n} 匹配前一个字符 m 到 n 次,
{m,} 匹配前一个字符 >= m 次,{0,n} 匹配前一个字符 <= n 次 |
2. 分组
符号 |
匹配内容 |
() |
匹配 () 连续字符串,而不是单个字符 |
| |
或者,匹配 | 左侧或右侧字符串 |
fgrep
fgrep 将查找内容视为固定字符串,相当于 grep -F。