grep 过滤.svn文件

时间:2023-03-10 06:21:15
grep 过滤.svn文件

[grep 过滤.svn文件]

 问题: 在repository搜索代码时,常常会搜索到.svn的代码,如果不想搜索.svn目录下的相关代码怎么办?

   1.使用管道进行双层“过滤”,其中第二次grep使用了-v选项,即逆向匹配,打印出不匹配的行
    grep -r 'function_name' * | grep -v '.svn'
    2.或者更简单一些,直接使用--exclude-dir选项,即指定排除目录,注意svn前的 \.
    grep -r --exclude-dir=\.svn 'function_name' * 
    的确,通过简单的选项设置,我们达到了过滤.svn目录的功能,但是每次都要输入 --exclude-dir=\.svn 的选项,似乎太麻烦了一点,幸运的是linux下灵活的配置文件可以解决这一切:
    打开 ~/.bashrc (这是bash的当前用户配置文件),在文件的最上方添加这样一条:
    export GREP_OPTIONS="--exclude-dir=\.svn" 
    (注意 = 的前后不能有空格,不然在载入该配置文件时会提示错误)
    保存并关闭,同时在命令行键入如下命令:
    source ~/.bashrc  (让bash重新读取脚本)
    当然,你也可以简单地关闭shell并重新打开一个shell窗口