首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Linux上使用grep获得预期的搜索结果

如何在Linux上使用grep获得预期的搜索结果
EN

Stack Overflow用户
提问于 2013-07-15 11:37:14
回答 2查看 88关注 0票数 0

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

代码语言:javascript
复制
./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':

代码语言:javascript
复制
 check.php 
./res/js/.svn/entries
./res/js/.svn/all-wcprops

那么结果只会显示:

代码语言:javascript
复制
check.php
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-15 11:40:11

一种简单的方法是简单地grep消除您的假阳性:

代码语言:javascript
复制
grep -rl roads . | grep -v '/\.svn/'

如果你想更高效,而不是花时间搜索SVN文件,你可以在浏览它们之前过滤掉它们:

代码语言:javascript
复制
find -type f | grep -v '/\.svn/' | xargs grep -l roads
票数 1
EN

Stack Overflow用户

发布于 2013-07-15 12:42:27

grep有一个排除特定目录的功能,称为"-- exclude -dir",所以您可以简单地将.svn作为"--exclude-dir“参数传递,如下所示:

代码语言:javascript
复制
        "grep -rl --exclude-dir=.svn ./ -e roads"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17646390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档