当使用带有通配符的 grep 时,如下所示
grep -in github */*
每个目录grep
显示很多消息,例如
grep: dir1/dir2: Is a directory
如何抑制这些消息?
令我惊讶的是,使用该标志--exclude-dir
并不起作用。
我在 MacOS 上使用grep (BSD grep) 2.5.1-FreeBSD
。
答案1
-d skip
将使 grep 跳过目录:
grep -in -d 跳过 github/
根据这个 MaxOS 手册页该选项应该适用于 MacOS grep。如果事实证明这不适用于 MacOS grep,您可以安装Homebrew MacOS 包管理器然后使用 Homebrew 安装GNU 版本的 grep,因为 GNU grep 支持-d skip
(尽管在这种情况下,您必须将包含 GNU grep 的目录设置为PATH
环境变量中的第一个)。
答案2
用于find
寻找文件并grep
到克/重/p在文件内:
find . -mindepth 2 -maxdepth 2 -type f -exec grep -in github {} \;
每个工具的名称中都有关于其用途的重要线索:-)。