日期:2014-05-16  浏览次数:20687 次

linux在多文件中查找关键词的位置

一次编译u-boot时有个错误做不到nand_readd.o,本来应该找nand_read.o才对的,我用find -iname "nand_readd.*" 没有找到这个文件我想应该是关键此错误我就找,文件太多找不到,我在网上一查用了这个指令:

grep -r --include=*.h -o --include=*.cpp -o --include=*.c <key_words_to_search> <path_to_search>

其中-R, -r, --recursive
              Read  all files under each directory, recursively; this is equivalent to the -d
              recurse option.

结合实际:

grep -r --include=*.* nand_readd ~/u-boot/

很快就找到了

或者:

全文搜索

:vimgrep(正常模式下使用命令) 全文搜索,功能同grep命令,但是支持在vim进行多文件跳转定位。
使用方法:vimgrep 正则表达式 文件。文件支持通配符,例如*.c代表所有的.c文件。如果希望递归搜索,可以使用**/*,表示搜索所有的文件。
:cl 列举结果
:cc(正常模式下使用命令) 当前结果
:cn(正常模式下使用命令) 下一个结果
:cp(正常模式下使用命令) 上一个结果
:cw(正常模式下使用命令) 重新打开搜索结果窗口