0%

grep 正则表达式

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。