1、使用grep -rnw查找指定文本
grep -rnw '/path/to/somewhere/' -e 'pattern'
-r
或-R
递归遍历目录及子目录-n
是行号
-w
代表匹配整个单词。-l
列出文件内容符合的文件名称。“显示文件名,而不是结果本身”。--exclude,--include,--exclude-dir
标志可用于高效搜索:
搜索扩展名为.c
或.h
的文件:
grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
搜索以.o
扩展名结尾的所有文件:
grep --exclude=*.o -rnw '/path/to/somewhere/' -e "pattern"
对于目录,可以通过--exclude-dir
参数排除特定目录。例如,这将排除dirs dir1/,dir2/
及其全部与*.dst/
匹配的目录:
grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"
有关更多选项,请查阅man grep
。
2、使用grep -Ril查找指定文本
grep -Ril "text-to-find-here" /
i
代表忽略大小写(在您的情况下为可选)。R
代表递归。l
代表“显示文件名,而不是结果本身”。/
代表从计算机的根目录开始。
3、使用silversearcher查找文本
内容极速搜索,递归搜索路径中的模式。像grep或ack,但更快,安装命令及相关说明参考下面文档。
相关文档:https://github.com/ggreer/the_silver_searcher
ag [FILE-TYPE] [OPTIONS] PATTERN [PATH]
FILE-TYPE
如果忽略,ag会搜索它支持的所有文件类型(按后缀名) PATH
可以是dir,也可以是filename, 如果忽略,就会搜索当前路径下的所有支持的文件
查看支持的文件类型
ag --list-file-types
常用参数
-i
忽略大小写-l
只列出文件名-g
文件名匹配-r
搜索时递归子目录。默认是true。--php
只搜索php文件--ignore-dir
忽略目录