如何递归地grep所有目录和子目录?
find . | xargs grep "texthere" *
如何递归地grep所有目录和子目录?
find . | xargs grep "texthere" *
当前回答
把我的两分钱扔在这里。正如其他人已经提到的那样,grep-r并不适用于所有平台。这听起来可能很傻,但我总是使用git。
git grep "texthere"
即使目录没有暂存,我也只是暂存并使用git grep。
其他回答
有关可用标志的列表:
grep --help
返回当前目录中此处的regexp文本的所有匹配项,以及相应的行号:
grep -rn "texthere" .
返回文本的所有匹配项,从根目录开始,具有相应的行号,忽略大小写:
grep -rni "texthere" /
此处使用的标志:
-r递归-n带输出的打印行号-我不理这个案子
grep-r“texthere”。(通知期结束)
(^信用:https://stackoverflow.com/a/1987928/1438029)
澄清:
grep-r“texthere”/(递归地grep所有目录和子目录)
grep-r“texthere”。(递归地grep这些目录和子目录)
grep递归
grep[选项]模式[文件…][选项]-R、 -R,--递归递归地读取每个目录下的所有文件。这相当于-d recurse或--directories=recurse选项。http://linuxcommand.org/man_pages/grep1.html
grep帮助
$grep--帮助
$ grep --help |grep recursive
-r, --recursive like --directories=recurse
-R, --dereference-recursive
选择
确认(http://beyondgrep.com/)
银(http://github.com/ggreer/the_silver_searcher)
只有文件名也很有用
grep -r -l "foo" .
grep -r "texthere" .
第一个参数表示要搜索的正则表达式,而第二个参数表示应该搜索的目录。在这种情况下。表示当前目录。
注意:这适用于GNUgrep,在某些平台(如Solaris)上,您必须特别使用GNUgrep而不是传统实现。对于Solaris,这是ggrep命令。
也:
find ./ -type f -print0 | xargs -0 grep "foo"
但grep-r是更好的答案。