grep: Global Reqular Expression Printing
文本匹配、文本过滤工具
能够实现根据指定的"模式{pattern}"逐行搜索文件内容,并将匹配到的整行显示出来
模式:是由正则表达式的元字符,其他字符组成的匹配条件
正则表达式RE:Basic RE,Extended RE
grep [option]... 'PATTERN' FILE...
基本正则表达式元字符:
.: 匹配任意单个字符
[]: 匹配指定范围内的任意单个字符
[^]: 匹配指定范围外的任意单个字符
[:space:]空白集合
[:pumct:]任意标点符号集合
次数匹配(贪婪模式)
*: 匹配其前的字符0,1或多次:ab*c,匹配任意多个b
?: 匹配其前的字符0或1次
\(m,n\): 至少出现m次,至多出现n次
\(m\): 精确出现m次
锚定符:
单词锚定:
\<: 锚定词首:\<root
\>: 锚定词尾:root\>
^: 行首锚定
$: 行尾锚定
\(\): 分组锚定:\(xy\)
\1 \2 \3...: 前向引用:\(xy\).*\1
grep选项:
-v: 显示不被模式匹配的行
-i: 不区分字母大小写
-o: 只显示匹配到的串
-A #: 显示匹配的行以及后面#行
-B #: 显示匹配的行以及前面#行
-C #: 显示匹配的行以及前后各#行
-E: 扩展正则表达式
egrep: 扩展正则表达式元字符
.
[]
[^]
*
?
+: 匹配其前的字符一次或多次
(m,n): 至少m至多n次,不需转义符\
^
$
\<
\>
|: 或者符,匹配前后的字符串二选一
(): 分组
fgrep: 不解析正则表达式