如何递归地grep所有目录和子目录?

find . | xargs grep "texthere" *

当前回答

grep-r“texthere”。(通知期结束)

(^信用:https://stackoverflow.com/a/1987928/1438029)


澄清:

grep-r“texthere”/(递归地grep所有目录和子目录)

grep-r“texthere”。(递归地grep这些目录和子目录)

grep递归

grep[选项]模式[文件…][选项]-R、 -R,--递归递归地读取每个目录下的所有文件。这相当于-d recurse或--directories=recurse选项。http://linuxcommand.org/man_pages/grep1.html

grep帮助

$grep--帮助

$ grep --help |grep recursive
  -r, --recursive           like --directories=recurse
  -R, --dereference-recursive

选择

确认(http://beyondgrep.com/)

银(http://github.com/ggreer/the_silver_searcher)

其他回答

只有文件名也很有用

grep -r -l "foo" .

对于.gz文件,递归扫描所有文件和目录更改文件类型或放置*

find . -name \*.gz -print0 | xargs -0 zgrep "STRING"

要查找路径递归包含特定字符串的文件名,请使用以下命令对于UNIX:

find . | xargs grep "searched-string"

对于Linux:

grep -r "searched-string" .

在UNIX服务器上查找文件

find . -type f -name file_name

在LINUX服务器上查找文件

find . -name file_name

下面是在Unix和Linux环境中递归搜索字符串的命令。

对于UNIX命令是:

find . -name "string to be searched" -exec grep "text" "{}" \;

对于Linux,命令是:

grep -r "string to be searched" .

如果您知道所需文件的扩展名或模式,另一种方法是使用--include选项:

grep -r --include "*.txt" texthere .

您还可以使用--exclude提及要排除的文件。

Ag

如果您经常搜索代码,Ag(银搜索器)是grep的一个更快的替代方案,它是为搜索代码而定制的。例如,默认情况下,它是递归的,并自动忽略.gitignore中列出的文件和目录,因此您不必一直向grep或find传递同样繁琐的排除选项。