grep 指定 除了隐藏文件
来源:互联网 发布:沈阳居住证网络查询 编辑:程序博客网 时间:2024/05/22 12:55
默认的grep会搜索所有文件,包括隐藏文件夹下的文件。
例如,使用如下命令搜索MediaButton字符串,搜索结果包含隐藏文件夹下的文件。
grep -nr MediaButton *
如果是用svn管理的代码,每个文件夹下都有一个.svn的隐藏文件夹,包含对代码版本的控制信息,日积月累会越来越庞大。所有如果只是默认搜索的话,很多搜索结果都是svn目录下的,对我们来说,是没有价值的内容;而且还会耗费很多时间。
grep的--exclude-dir=参数就是为了排除某个目录的,即不包含等号后面的目录,所以我们可以利用此参数去掉.svn的隐藏目录。
--exclude-dir=参数的用法如下:
1. If you have GNU Grep, it should work like this:
<code style="margin:0px; padding:0px; border:0px; vertical-align:baseline; font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif"><span class="pln" style="margin:0px; padding:0px; border:0px; vertical-align:baseline; background-color:transparent">grep </span><span class="pun" style="margin:0px; padding:0px; border:0px; vertical-align:baseline; background-color:transparent">--</span><span class="pln" style="margin:0px; padding:0px; border:0px; vertical-align:baseline; background-color:transparent">exclude</span><span class="pun" style="margin:0px; padding:0px; border:0px; vertical-align:baseline; background-color:transparent">-</span><span class="pln" style="margin:0px; padding:0px; border:0px; vertical-align:baseline; background-color:transparent">dir</span><span class="pun" style="margin:0px; padding:0px; border:0px; vertical-align:baseline; background-color:transparent">=</span><span class="str" style="color:#8000;margin:0px; padding:0px; border:0px; vertical-align:baseline; background-color:transparent;">".svn"</span><span class="pln" style="margin:0px; padding:0px; border:0px; vertical-align:baseline; background-color:transparent"></span></code>
例如:查找当前目录以及子目录下所有包含"MediaButton"字符串的代码并打印行号
grep -nr --exclude-dir=".svn" MediaButton *
或者
grep -nr --exclude-dir=\.svn MediaButton *
--exclude-dir=后面要排除的目录用双引号括起来或者直接接目录名都可以,但是特殊字符必须用转义符表示,例如".svn"中的"."。
2.If happen to be on a Unix System without GNU Grep, try the following:
这种方式是使用管道进行双层“过滤”,其中第二次grep使用了-v选项,即逆向匹配,打印出不匹配的行
<code style="margin:0px; padding:0px; border:0px; vertical-align:baseline; font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif"><span class="pln" style="margin:0px; padding:0px; border:0px; vertical-align:baseline; background-color:transparent">grep </span><span class="pun" style="margin:0px; padding:0px; border:0px; vertical-align:baseline; background-color:transparent">-</span><span class="pln" style="margin:0px; padding:0px; border:0px; vertical-align:baseline; background-color:transparent">R </span><span class="str" style="color:#8000;margin:0px; padding:0px; border:0px; vertical-align:baseline; background-color:transparent;">"whatever you like"</span><span class="pln" style="margin:0px; padding:0px; border:0px; vertical-align:baseline; background-color:transparent"> </span><span class="pun" style="margin:0px; padding:0px; border:0px; vertical-align:baseline; background-color:transparent">*|</span><span class="pln" style="margin:0px; padding:0px; border:0px; vertical-align:baseline; background-color:transparent">grep </span><span class="pun" style="margin:0px; padding:0px; border:0px; vertical-align:baseline; background-color:transparent">-</span><span class="pln" style="margin:0px; padding:0px; border:0px; vertical-align:baseline; background-color:transparent">v </span><span class="str" style="color:#8000;margin:0px; padding:0px; border:0px; vertical-align:baseline; background-color:transparent;">"\.svn/*"</span><span class="pln" style="margin:0px; padding:0px; border:0px; vertical-align:baseline; background-color:transparent"> </span></code>
3. 如果每次都输入--exclude-dir=参数,是不是很慢还容易出错,降低效率呢?
不过不用担心,我们可以把--exclude-dir=参数通过加入配置文件 ~/.bashrc (这是bash的当前用户配置文件) 的方法来简化操作,提高效率。
在~/.bashrc文件的末尾添加以下命令:
- export GREP_OPTIONS="--exclude-dir=\.svn"
然后搜索时,执行以下命令即可:
grep -nr MediaButton *
这样默认就会加载GREP_OPTIONS选项,不搜索.svn目录。
需要注意的是,GREP_OPTIONS这个关键词不能修改为其他的,否则系统就不会认为是grep的一个选项参数了。
参考:
http://stackoverflow.com/questions/1491514/exclude-svn-directories-from-grep
http://hi.baidu.com/jasonlyy/item/6a9594e7438e97a1c00d755c
原文:http://blog.csdn.net/ameyume/article/details/7711420
- grep 指定 除了隐藏文件
- grep 递归指定文件遍历方法
- grep指定文件中的所有内容
- 用 grep命令查找包含指定文字的文件
- grep在指定类型的文件中查找字符
- grep 命令(在指定文件的文件类型中查找)
- linux的文件指定查看工具-grep使用说明
- grep查找指定文件类型
- 文件grep
- Linux 下rm + grep 命令删除除去指定文件的剩余所有文件
- Linux 下rm+grep删除除去指定文件的剩余所有文件
- 利用系统钩子技术隐藏指定的文件或文件夹
- Git|从隐藏项中获取指定文件
- grep如何递归目录并在指定类型文件中查找
- grep在当前目录下从指定类型文件中搜素字符串
- Linux中通过grep命令查看文件中包含的指定字符串
- linux中find查找指定时间段的文件并grep查找内容
- rm 利用 ls -l, grep, awk 命令删除指定时间创建的文件或目录
- 搜索引擎 流程
- Barcode Recognition Decoder SDK条码100控件
- iOS编译g729a
- 机器学习中的相似性度量
- Jquery 之siblings()方法
- grep 指定 除了隐藏文件
- ARC以及MRC中setter方法的差异
- OCP 1Z0 051 QUESTION NO: 54
- 博客出炉了
- java操作excel-jxl
- 顺序图知识点
- FF,ie6,ie7兼容性
- PHP 脚本执行内存使用大小
- jEasyUI 中文版