分享

grep 搜索时忽略.svn目录

 baijeg 2015-06-11
如果是用svn管理的代码,每个文件夹下都有一个.svn的隐藏文件夹,包含对代码版本的控制信息,日积月累会越来越庞大。所有如果只是默认搜索的话,很多搜索结果都是svn目录下的,对我们来说,是没有价值的内容;而且还会耗费很多时间。

grep的--exclude-dir=参数就是为了排除某个目录的,即不包含等号后面的目录,所以我们可以利用此参数去掉.svn的隐藏目录。

--exclude-dir=参数的用法如下:

Java代码 复制代码 收藏代码
  1. If you have GNU Grep, it should work like this:   
  2. grep --exclude-dir=".svn"  
  3. 例如:查找当前目录以及子目录下所有包含"test"字符串的代码并打印行号   
  4.   
  5. grep -nr --exclude-dir=".svn" test *   
  6.   
  7. 或者   
  8.   
  9. grep -nr --exclude-dir=\.svn test *   
  10. --exclude-dir=后面要排除的目录用双引号括起来或者直接接目录名都可以,但是特殊字符必须用转义符表示,例如".svn"中的"."。  



如果每次都输入--exclude-dir=参数,是不是很慢还容易出错,降低效率呢?

不过不用担心,我们可以把--exclude-dir=参数通过加入配置文件 ~/.bashrc (这是bash的当前用户配置文件) 的方法来简化操作,提高效率。

在~/.bashrc文件的末尾添加以下命令:
Java代码 复制代码 收藏代码
  1. export GREP_OPTIONS="--exclude-dir=\.svn"    

然后保存,执行source ~/.bashrc或者. ~/.bashrc,使修改起作用。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多