如何递归地grep所有目录和子目录?
find . | xargs grep "texthere" *
如何递归地grep所有目录和子目录?
find . | xargs grep "texthere" *
当前回答
只是为了好玩,如果@christangrant的答案太多而无法输入,可以快速搜索*.txt文件:-)
grep-r文本此处|grep.txt文件
其他回答
只有文件名也很有用
grep -r -l "foo" .
2018年,您希望使用ripgrep或白银搜索器,因为它们比其他搜索器快得多。
下面是一个包含336个一级子目录的目录:
% find . -maxdepth 1 -type d | wc -l
336
% time rg -w aggs -g '*.py'
...
rg -w aggs -g '*.py' 1.24s user 2.23s system 283% cpu 1.222 total
% time ag -w aggs -G '.*py$'
...
ag -w aggs -G '.*py$' 2.71s user 1.55s system 116% cpu 3.651 total
% time find ./ -type f -name '*.py' | xargs grep -w aggs
...
find ./ -type f -name '*.py' 1.34s user 5.68s system 32% cpu 21.329 total
xargs grep -w aggs 6.65s user 0.49s system 32% cpu 22.164 total
在OSX上,这将安装rigrep:brew install rigrep。这将安装silver搜索器:brew install the _silver_searcher。
对于.gz文件,递归扫描所有文件和目录更改文件类型或放置*
find . -name \*.gz -print0 | xargs -0 zgrep "STRING"
只是为了好玩,如果@christangrant的答案太多而无法输入,可以快速搜索*.txt文件:-)
grep-r文本此处|grep.txt文件
另一种语法递归地grep Linux系统上所有文件中的字符串
grep-irn“字符串”
-r表示递归搜索,在给定目录和子目录中搜索指定字符串,在文件、程序等中查找指定字符串
-不区分大小写可用于添加大小写颠倒的字符串
-n打印指定字符串的行号
注意:这会将大量结果打印到控制台,所以您可能需要通过管道过滤输出,并删除不太有趣的信息,它还会搜索二进制程序,因此您可能需要过滤一些结果