0

我试图找出roads服务器上哪些文件包含这个文本'',所以我使用这个命令:grep -rl 'roads'. 但它显示了很多这样的文件:

./res/js/.svn/entries
./res/js/.svn/all-wcprops
./res/styles/.svn/entries
./res/styles/.svn/all-wcprops
./res/images/.svn/entries

我不希望这个文件夹.svn显示在搜索结果中,因为这只是用于版本控制,对我来说没有任何意义,所以有没有办法可以做到这一点:如果结果包含.svn,那么它不会显示在最终结果中结果。例如以下三个文件包含文本' roads':

 check.php 
./res/js/.svn/entries
./res/js/.svn/all-wcprops

然后结果只显示:

check.php
4

2 回答 2

1

一种简单的方法是简单地消除误报:

grep -rl roads . | grep -v '/\.svn/'

如果您想提高效率而不是花时间搜索 SVN 文件,您可以在 grepping 之前过滤掉它们:

find -type f | grep -v '/\.svn/' | xargs grep -l roads
于 2013-07-15T03:40:11.037 回答
1

grep 具有排除特定目录的功能,称为“--exclude-dir”,因此您只需将 .svn 作为“--exclude-dir”参数传递,如下所示:

        "grep -rl --exclude-dir=.svn ./ -e roads"
于 2013-07-15T04:42:27.077 回答