是否有 grep/egrep 的“rc”配置文件? (~/.egreprc?)

是否有 grep/egrep 的“rc”配置文件? (~/.egreprc?)

我通常grep在开发时使用,并且有一些扩展我总是想排除(例如*.pyc)。

是否可以创建一个~/.egreprc或类似的东西,并添加过滤以pyc从所有结果中排除文件?

这是可能的,还是我必须创建一个别名才能grep以这种方式使用,并调用别名而不是grep

答案1

不,没有 grep 的 rc 文件。

GNU grep 2.4 到 2.21 应用了环境变量中的选项GREP_OPTIONS,但较新的版本不再遵循它。

对于交互式使用,请在 shell 初始化文件中定义别名(.bashrc.zshrc)。我使用以下变体:

alias regrep='grep -Er --exclude=*~ --exclude=*.pyc --exclude-dir=.bzr --exclude-dir=.git --exclude-dir=.svn'

如果您调用别名grep,并且偶尔想grep在不带选项的情况下调用,请键入\grep。反斜杠绕过别名。

答案2

确认可以做你想做的事甚至更多。

默认情况下,它会忽略二进制文件,您可以告诉它忽略您想要的其他文件类型--notext--nohtml等等。它也能够定义 rc 文件,以便您可以使用自己的类型自定义它。

答案3

不是直接回答你的问题。但 grep 可以选择忽略所有二进制文件,包括 *.pyc。选项是-I

grep -rI hello .

答案4

至少自 2016 年起(根据史蒂文·佩尼的评论),grep 推荐的方法是使用别名或脚本:

$ export GREP_OPTIONS="--exclude='*~'"
$ grep -r someStringThatDoesNotExist
grep: warning: GREP_OPTIONS is deprecated; please use an alias or script
$

相关内容