-A 2 显示该行及该行的后两行
-B 2 显示该行及该行的前两行
-b 输出的每行前打印该行在输入文件中的偏移字节数
-c 显示匹配到的行的数目,而不显示行的内容
-e 模式中所有的字符同等对待,特殊字符看作普通字符对待;-e 另一种方式是--regexp=pattern,其中pattern是要匹配的字符
-f 后跟一个文件名,grep从该文件中获取搜索模式,然后与被查找的文件进行匹配
-h 被查找的文件多于一个,grep会在查找结果每行内容之前先输出文件名,-h选项就是在次情况不显示文件名
-i 比较字符时忽略大小写的区别(即认为字母的大小写相等)
-l 只列出匹配行所在文件的文件名(每个文件名只列一次),文件名之间用换行符分隔
-n 在每一行前面加上它在文件中的相对行号
-q 或者--quiet不输出结果,如果找到匹配,那么状态为0,没有找到就是1,bash中用echo $?查看状态
-r 沿目录递归而下
-v 反向查找,只显示不匹配的行
-w 把表达式作为词来查找,就好像它被\<和\>所包含一样
-x 除非搜索模式与正行内容完全一致,否则不匹配
-# #是一个用来代表整数值的符号如,grep -2 pattern filename将导致grep打印匹配行及匹配行的前两行和后两行
\w 字母数字混合的字符[a-zA-Z0-9]
\W 非字母数字的字符[^a-zA-Z0-9]
\b 一个词的分解
[:alnum:] 字母与数字两种字符
[:alpha:] 字母字符
[:cntrl:] 控制字符
[:digit:] 数字字符
[:graph:] 非空字符(不包括空格、控制字符)
[:lower:] 小写字母
[:print:] 与[:graph:]类似,但包含空格字符
[:punct:] 标点字符
[:space:] 所有的空白字符(换行符、空格符、制表符)
[:upper:] 大写字母
[:xdigit:] 十六进制数字字符(0-9A-Fa-f)
egrep 新增的功能(Linux系统中,使用grep -E来执行egrep功能,grep可以使用任何附加的元字符,只需在特殊元字符前加一个反斜线)
+ 匹配一个或多个加号前的字符
? 匹配零个或一个前导字符
* 匹配零个或多个前导字符
a|b 匹配a或b
()字符组
fgrep 不对任何正则表达式元字符做特殊处理(Linux系统中,使用grep -F来执行fgrep)