[b][size=medium]1.如何使匹配的字符高亮?[/size][/b]
grep命令默认输出是匹配行而不是仅仅给出匹配的字符,所以当文本行较长而需要匹配的内容较短时,我们仍需费力的找出匹配字符,但是如果有高亮显示,那就大大地不同了:
[img]http://dl.iteye.com/upload/attachment/0072/0342/a33e0526-eac3-3424-8446-73c1846d8fa2.jpeg[/img]
通过增加[b]--color=auto[/b]参数,我们可以使匹配的结果高亮:
[img]http://dl.iteye.com/upload/attachment/0072/0344/381b7876-6c11-3b96-8b88-cf30ba300423.jpeg[/img]
但是如果我们每次使用grep命令都加这个参数是不是又太麻烦了?,这时候我们可以设置alias来解决:
[img]http://dl.iteye.com/upload/attachment/0072/0346/fb625a5b-33cf-3ad2-82cf-c4326f6785dc.jpeg[/img]
如上图所示,只要在.bashrc个人配置文件中加入alias命令即可(设置好以后需要重新开个终端才能使新的配置文件生效)
[b][size=medium]2.grep常用参数[/size][/b]
-n:显示匹配行所在的行数
[img]http://dl.iteye.com/upload/attachment/0072/0352/6cef4984-ddae-3362-bcec-e06ab4c6d89b.jpeg[/img]
-i:忽略大小写比较(find命令中也有个忽略大小写查找:-iname)
[img]http://dl.iteye.com/upload/attachment/0072/0354/d0e183b2-a1f5-36c5-99a2-5b59f5e91574.jpeg[/img]
-v:反选
[img]http://dl.iteye.com/upload/attachment/0072/0356/16dce80a-84a5-3aba-a431-0157278a1d11.jpeg[/img]
-A, -B, -C: 输出匹配行所在的上下文(当我分析maven的依赖树时经常使用这个命令)
[img]http://dl.iteye.com/upload/attachment/0072/0358/8d9dfb34-3948-38e1-a30e-4032baf54b4c.jpeg[/img]
-E :使用扩展正则表达式
grep命令默认使用的是基本正则表达式,不支持:? + ( ) | 这些正则元字符,加上-E参数,表明使用扩展正则,这样就可以使用这些字符了,我们来看几个例子:
[img]http://dl.iteye.com/upload/attachment/0072/8933/872cf63a-375a-3d35-990e-0404146a1229.jpg[/img]
-c: 统计匹配数
--include=PATTERN: 指定文件类型,通常配合-r参数(递归目录查找),PATTERN是bash通配符
grep命令默认输出是匹配行而不是仅仅给出匹配的字符,所以当文本行较长而需要匹配的内容较短时,我们仍需费力的找出匹配字符,但是如果有高亮显示,那就大大地不同了:
[img]http://dl.iteye.com/upload/attachment/0072/0342/a33e0526-eac3-3424-8446-73c1846d8fa2.jpeg[/img]
通过增加[b]--color=auto[/b]参数,我们可以使匹配的结果高亮:
[img]http://dl.iteye.com/upload/attachment/0072/0344/381b7876-6c11-3b96-8b88-cf30ba300423.jpeg[/img]
但是如果我们每次使用grep命令都加这个参数是不是又太麻烦了?,这时候我们可以设置alias来解决:
[img]http://dl.iteye.com/upload/attachment/0072/0346/fb625a5b-33cf-3ad2-82cf-c4326f6785dc.jpeg[/img]
如上图所示,只要在.bashrc个人配置文件中加入alias命令即可(设置好以后需要重新开个终端才能使新的配置文件生效)
[b][size=medium]2.grep常用参数[/size][/b]
-n:显示匹配行所在的行数
[img]http://dl.iteye.com/upload/attachment/0072/0352/6cef4984-ddae-3362-bcec-e06ab4c6d89b.jpeg[/img]
-i:忽略大小写比较(find命令中也有个忽略大小写查找:-iname)
[img]http://dl.iteye.com/upload/attachment/0072/0354/d0e183b2-a1f5-36c5-99a2-5b59f5e91574.jpeg[/img]
-v:反选
[img]http://dl.iteye.com/upload/attachment/0072/0356/16dce80a-84a5-3aba-a431-0157278a1d11.jpeg[/img]
-A, -B, -C: 输出匹配行所在的上下文(当我分析maven的依赖树时经常使用这个命令)
[img]http://dl.iteye.com/upload/attachment/0072/0358/8d9dfb34-3948-38e1-a30e-4032baf54b4c.jpeg[/img]
-E :使用扩展正则表达式
grep命令默认使用的是基本正则表达式,不支持:? + ( ) | 这些正则元字符,加上-E参数,表明使用扩展正则,这样就可以使用这些字符了,我们来看几个例子:
[img]http://dl.iteye.com/upload/attachment/0072/8933/872cf63a-375a-3d35-990e-0404146a1229.jpg[/img]
-c: 统计匹配数
$ cat test
1214sdfasdfddadsafsadf123
asfdsadfdd231213
sadfasdf
$ grep -c 'dd' test
2
--include=PATTERN: 指定文件类型,通常配合-r参数(递归目录查找),PATTERN是bash通配符
grep 'hello' --include=*.{java,xml} -r .