我试图找出服务器上哪些文件包含这个文本'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发布于 2013-07-15 11:40:11
一种简单的方法是简单地grep消除您的假阳性:
grep -rl roads . | grep -v '/\.svn/'如果你想更高效,而不是花时间搜索SVN文件,你可以在浏览它们之前过滤掉它们:
find -type f | grep -v '/\.svn/' | xargs grep -l roads发布于 2013-07-15 12:42:27
grep有一个排除特定目录的功能,称为"-- exclude -dir",所以您可以简单地将.svn作为"--exclude-dir“参数传递,如下所示:
"grep -rl --exclude-dir=.svn ./ -e roads"https://stackoverflow.com/questions/17646390
复制相似问题