Skip to content

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。