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

find . | xargs grep "texthere" *

当前回答

我现在总是使用(即使在Windows上使用GoW-Gnu):

grep --include="*.xxx" -nRHI "my Text to grep" *

(正如kronen在评论中指出的,您可以添加2>/dev/null以使拒绝权限的输出无效)

其中包括以下选项:

--include=PATTERN

仅在目录中重复搜索与PATTERN匹配的文件。

-n, --line-number

在输出的每一行前面加上输入文件中的行号。

(注意:phuclv在注释中补充道,-n会大大降低性能,因此您可能希望跳过该选项)

-R, -r, --recursive

递归地读取每个目录下的所有文件;这相当于-d递归选项。

-H, --with-filename

打印每个匹配项的文件名。

-I     

处理二进制文件,就像它不包含匹配的数据一样;这相当于--binary files=不匹配选项。

如果我想要不区分大小写的结果,我可以添加“I”(-nRHIi)。

我可以得到:

/home/vonc/gitpoc/passenger/gitlist/github #grep --include="*.php" -nRHI "hidden" *
src/GitList/Application.php:43:            'git.hidden'      => $config->get('git', 'hidden') ? $config->get('git', 'hidden') : array(),
src/GitList/Provider/GitServiceProvider.php:21:            $options['hidden'] = $app['git.hidden'];
tests/InterfaceTest.php:32:        $options['hidden'] = array(self::$tmpdir . '/hiddenrepo');
vendor/klaussilveira/gitter/lib/Gitter/Client.php:20:    protected $hidden;
vendor/klaussilveira/gitter/lib/Gitter/Client.php:170:     * Get hidden repository list
vendor/klaussilveira/gitter/lib/Gitter/Client.php:176:        return $this->hidden;
...

其他回答

在POSIX系统中,找不到grep的-r参数和grep-rn“东西”。不会运行,但如果使用find命令,它将:

查找-键入f-exec grep-n“stuff”{}\-打印

Solaris和HP-UX同意。

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

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

只有文件名也很有用

grep -r -l "foo" .

如果您正在从目录结构中查找所有文件中的特定内容,您可以使用find,因为它更清楚您在做什么:

find -type f -exec grep -l "texthere" {} +

注意,-l(l的小写)显示包含文本的文件的名称。如果要打印匹配项本身,请将其删除。或者使用-H将文件与匹配项一起获取。总之,其他备选方案包括:

find -type f -exec grep -Hn "texthere" {} +

其中-n打印行号。

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)