grep 常用选项:
--color=auto 或者 --color: 对匹配项的文本颜色高亮
-i:忽略大小写
-n:显示结果所在行
-c:统计匹配的行数
-o:只显示符合条件的字符串,但不整行显示
-v:输出不带关键字的行(反向匹配)
-w:匹配整个单词
-Ax:在输出的时候包含结果所在行的之后的指定行数, 例:grep -nA1 'you'
-Bx:在输出的时候包含结果所在行的之前的指定行数
-Cx::在输出的时候包含结果所在行的之前和之后的指定行数
-e: 实现多个选项的匹配,逻辑or关系
-q:静默模式,不输出任何信息
-P:使用兼容perl的正则引擎
-E:使用扩展的正则表达式,而不是基本正则表达式,相当于使用 egrep
正则表达式元字符:
^ 以什么开头
$ 以什么结尾, 例: grep '^$' 表示搜索空白符
. 匹配一个字符
* 匹配若干字符, 例: grep '.*' 表示搜索任意字符
[] 匹配集合中的字符
[x-y]匹配集合范围内的字符
[^ ] 匹配不在集合内的字符
\ 转义符合, 例: grep 'love\.'
特殊的元字符:
\< 以什么开头的所有行, 例: grep '<love'
\> 以什么结尾的所有行
\(..\( 标签匹配以后使用的字符 , 例: grep '\(lover\)able
x\{m,n\} 重复字符x,m次,不超过n次, 例:grep 'o\{5,10\}
扩展的正则表达式:
+ 重复前一个字符若干次, 例: grep 'go+d'
? 0或者一个字符
| 表示或,查找多个字符串
() 分组过滤匹配,例: grep 'g(la|oo)d