如何递归查找具有文本模式的文件,排除某些目录和文件。

8
如何递归查找具有文本模式的文件,排除某些目录和文件?
Example:- 
$ ls
bower.json      bower_components    configure       results         unit-tests

所以我需要在所有目录中递归查找“searchText”,但不包括bower.json和results。


使用 https://dev59.com/O2855IYBdhLWcg3wq2XL 中的方法,然后使用 -exec 标志在这些文件上进行 grep。 - GKFX
请问您能提供确切的命令吗?这个命令不起作用。查找 -name "*.js" -not -path results。 - nagendra547
1
find -type f -not -path './bower.json' -not -path './results/*' -exec grep 'searchString' -- '{}' +,但是@RomanPerekhrest的答案更好。 - GKFX
我已经标记了这个问题,因为我最初将其标记为错误的重复内容,希望很快能得到修复。 - GKFX
1
感谢GKFX!我发现grep解决方案更好、更简洁。 - nagendra547
1个回答

4

一种简短的grep解决方案:

grep -r --exclude="bower.json" --exclude-dir="results" "searchText"

谢谢,它起作用了。只有一个小问题。你需要在最后加上一个点(.)。grep -r --exclude="bower.json" --exclude-dir="results" "reset-device" . - nagendra547
@nagendra547,欢迎,点号 . 默认是有意义的。 - RomanPerekhrest

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接