Grep 使用记录
2008-10-29 17:09
162 查看
最近做的事情比较繁琐,使用的工具更加的笨拙,全工程搜索东西是一个相当的慢,我决定使用更有效的工具来提高工作的效率,所以选择了grep。
我使用grep的选项通常如下:
grep -i -r -w -l --include=*.xml --include=*.c "functionname" .
/* 下面这个可以在根目录下面搜索比较深的子目录下面某支文件中的内容 */
grep -i -r -n --include=filename "functionname" .
-i 忽略大小写
-r 遍历目录,包括子目录
-w 表示要搜索的string是一个word,是/<word/>很方便的简单使用
-l 只列出匹配的文件名
--include=*.xml 搜索xml类型的文件,*.xml可以是其他的通配符
同这个对等的也可以使用--exclude排除不想要搜索的文件类型
发现grep Context Line Control的功能比较有帮助显示。
grep默认的选项是-o,也就是只打印match的行。但是-A num / -B num / -C num 提供了能够打印match行附近行的功能。如果在使用grep查找的时候对match行周边的行比较感兴趣可以使用这几个选项。
-A num --after-context=num
-B num --before-context=num
-C num --context=num
相对来讲,这三个选项看长选项就能猜测如何使用啦。
比较简单,但是比我使用的笨拙的项目工具而言,能够把5分钟左右的搜索减少到1分钟左右吧。
如果没有安装grep,但是在使用windows xp的话,可以使用下面的方法。
@rem 首先到工作目录下
cd workdir
findstr /I /R "/<word/>" *.UXO
@rem Add Magic 2008-10-30 13:35 The following should work as grep does but not --START--
@rem failed case number 1
@rem replace the dot with path you wanna to search recursively.
findstr /I /S "/<word/>" .
@rem failed case number 2
findstr /I /S /R "/<word/>" /D:E:/pathtobesearched
@rem failed case number 3
findstr /I /S /R "/<word/>"
@rem Add Magic 2008-10-30 13:35 ---END---
@rem Add Magic 2008-11-10 10:54 Add /s for Findstr --START--
findstr /S /I echo *.*
findstr /S /I /M echo *.bat
findstr /S /I /N echo *.bat
@rem Add Magic 2008-11-10 10:54 Add /s for Findstr ---END---
findstr也有对应grep recursive(递归)的选项/S,可以使用下。
Appendex A:
Findstr 帮助 http://www.ss64.com/nt/findstr.html FINDSTR
$Last Update: 2008-11-24 14:02 MagicPang$
$Change History:$
$2008-10-29 17:27 MagicPang Initialize this article$
$2008-10-30 13:40 MagicPang add failed case record. and add /R option to findstr$
$2008-10-30 13:44 MagicPang add appendix A: usage of Findstr$
$2008-11-10 10:55 MagicPang add example for Findstr /s$
$2008-11-21 13:00 MagicPang delete appendex A cause it's redundant add grep usage example$
$2008-11-24 14:02 MagicPang add Context Line Control Options for grep$
我使用grep的选项通常如下:
grep -i -r -w -l --include=*.xml --include=*.c "functionname" .
/* 下面这个可以在根目录下面搜索比较深的子目录下面某支文件中的内容 */
grep -i -r -n --include=filename "functionname" .
-i 忽略大小写
-r 遍历目录,包括子目录
-w 表示要搜索的string是一个word,是/<word/>很方便的简单使用
-l 只列出匹配的文件名
--include=*.xml 搜索xml类型的文件,*.xml可以是其他的通配符
同这个对等的也可以使用--exclude排除不想要搜索的文件类型
发现grep Context Line Control的功能比较有帮助显示。
grep默认的选项是-o,也就是只打印match的行。但是-A num / -B num / -C num 提供了能够打印match行附近行的功能。如果在使用grep查找的时候对match行周边的行比较感兴趣可以使用这几个选项。
-A num --after-context=num
-B num --before-context=num
-C num --context=num
相对来讲,这三个选项看长选项就能猜测如何使用啦。
比较简单,但是比我使用的笨拙的项目工具而言,能够把5分钟左右的搜索减少到1分钟左右吧。
如果没有安装grep,但是在使用windows xp的话,可以使用下面的方法。
@rem 首先到工作目录下
cd workdir
findstr /I /R "/<word/>" *.UXO
@rem Add Magic 2008-10-30 13:35 The following should work as grep does but not --START--
@rem failed case number 1
@rem replace the dot with path you wanna to search recursively.
findstr /I /S "/<word/>" .
@rem failed case number 2
findstr /I /S /R "/<word/>" /D:E:/pathtobesearched
@rem failed case number 3
findstr /I /S /R "/<word/>"
@rem Add Magic 2008-10-30 13:35 ---END---
@rem Add Magic 2008-11-10 10:54 Add /s for Findstr --START--
findstr /S /I echo *.*
findstr /S /I /M echo *.bat
findstr /S /I /N echo *.bat
@rem Add Magic 2008-11-10 10:54 Add /s for Findstr ---END---
findstr也有对应grep recursive(递归)的选项/S,可以使用下。
Appendex A:
Findstr 帮助 http://www.ss64.com/nt/findstr.html FINDSTR
$Last Update: 2008-11-24 14:02 MagicPang$
$Change History:$
$2008-10-29 17:27 MagicPang Initialize this article$
$2008-10-30 13:40 MagicPang add failed case record. and add /R option to findstr$
$2008-10-30 13:44 MagicPang add appendix A: usage of Findstr$
$2008-11-10 10:55 MagicPang add example for Findstr /s$
$2008-11-21 13:00 MagicPang delete appendex A cause it's redundant add grep usage example$
$2008-11-24 14:02 MagicPang add Context Line Control Options for grep$
相关文章推荐
- Grep, Ack, Ag 使用记录
- grep使用记录
- grep、sed命令使用记录
- 记录一些平常使用的工具
- 【记录】解决VS2015调试Xamarin程序一闪而过(使用微软ANDROID模拟器)
- Retrofit2 使用记录
- matlab文件编译成库在C++环境下使用遇到的问题记录
- Android Study 之 极光推送使用心得以及记录
- Redis安装和使用记录
- zz qt4在vs2008下的使用记录(草稿)
- java curl开发记录(二) linux系统下jni封装curl,android java使用curl
- 使用DataSet更新记录
- QXORM 使用记录
- jquery使用的一些记录
- 常用编码软件简单使用记录 2 : 非自主编码器
- 优化产品使用体验记录一
- 如何使用log4net记录日志
- 记录各种使用小技巧
- 如何查看电脑使用记录
- 记录一下Appium中使用swipe方法时候出现的问题(Appium1.0.0.3版本)