从多个文本文件中搜索

最近在公司做ecmall的二次开发,有时候要找一些函数自己一步步去找又很麻烦,手头上也没装什么工具,就想能不能有个搜索器递归的遍历整个源码进行搜索,告诉我哪个源程序中有我要的东西,其实通过find和grep就能够实现这个功能,windows的童鞋们也可以通过安装cygwin来使用。

用法就是,进入源码的文件夹

find . | xargs grep "搜索内容"

在windows cygwin下可能没问题,但是到了linux下遇到目录grep会提示

grep: xxx: Is a directory

干扰搜索结果,这时候我们就要给grep加上-s选项。
变成

find . | xargs grep -s "搜索内容"

其实还有更简单的方法,不需要使用xargs直接使用find -exec就能达到上面的效果

find . -exec grep -s '搜索内容' {} \;

只是大家更经常用的是xargs

当然如果你想要显示行号可以给grep增加-n选项,你想看前N行后N行还有-BN -AN选项供你使用,比如我要显示行号并且让grep输出前后3行我可以:

find . | xargs grep -s -n -B3 -A3 "搜索内容"

就可以了,怎么样强大吧?

Comments

Popular posts from this blog

socket close shutdown函数区别

批量在文件头插入

hash表取模技巧