grep如何忽略.svn目录,以及如何忽略多个目录

这是我在网上看到的文章,不过里面还有问题,我的不支持,需要更换架包

grep -r 'function_name' *

(*表示当前目录下所有文件,-r表示递归查找,使用的模式较为简单,仅作参考)由于现在的很多项目都使用subversion作为版本管理工具,因此每个源码目录下都会有一个.svn 目录,其中包含了很多源码信息。不出意外,你很快会得到满屏幕的打印信息,但是其中大部分的信息都来自于 .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窗口这样当你使用grep时,bash都会自动帮你附加--exclude选项,从而节省不少输入的时间:)

注意:老版本的grep不支持--exclude-dir选项,会报错误“grep: unrecognized option `--exclude-dir=.svn'”如果遇到这种情况,请更新软件包。

另外,如果需要支持多个目录,可用如下格式:  --exclude-dir=external --exclude-dir=build --exclude-dir=bin --exclude-dir=\.svn

相应地: export GREP_OPTIONS="--exclude-dir=external --exclude-dir=build --exclude-dir=bin --exclude-dir=\.svn"

最新文章

  1. zTree简单实现
  2. [MongoDB]安装MongoDB
  3. 逗号分割符--字段中含逗号等情况的解析方法Java实现
  4. ArcSDE安装注意事项
  5. 设置 Xcode 自动生成代码片段
  6. cat 显示指定行
  7. POJ 3026 Borg Maze(bfs+最小生成树)
  8. PHP中数组转换为XML格式
  9. c# 对象object转换
  10. 《NoSQL精粹》读书笔记
  11. 标题:a++和++a的区别
  12. 【NOIP2015】字串
  13. OO第一单元总结——多项式求导
  14. jumpserver堡垒机部署
  15. HTML5之日历控件
  16. Retrofit2
  17. JavaScript笔记基础版
  18. java 客户端调用 go grpc服务端问题总结
  19. Flask源码解析:Flask应用执行流程及原理
  20. linux 下的python的最佳打开方式, you know?

热门文章

  1. iOS并发编程指南之同步
  2. [Asp.net MVC]Asp.net MVC5系列——从控制器访问模型中的数据
  3. CSS继承总结
  4. Android学习笔记(二)——探究一个活动
  5. JavaScript中的跨域
  6. linux中wc命令用法
  7. js清空array数组的方法
  8. 项目:DoubleFaceCamera
  9. vb.net 控件(包括字体)随窗体按比例缩放
  10. iOS 8 Auto Layout界面自动布局系列2-使用Xcode的Interface Builder添加布局约束