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。