小智 267
如果你有GNU Grep,它应该像这样工作:
grep --exclude-dir=".svn"
Run Code Online (Sandbox Code Playgroud)
如果碰巧是在没有GNU Grep的Unix系统上,请尝试以下方法:
grep -R "whatever you like" *|grep -v "\.svn/*"
Run Code Online (Sandbox Code Playgroud)
osg*_*sgx 36
对于grep> = 2.5.1a
你可以把它放到你的环境中(例如.bashrc)
export GREP_OPTIONS='--exclude-dir=".svn"'
Run Code Online (Sandbox Code Playgroud)
PS:感谢Adrinan,我的版本中有额外的引号:
export GREP_OPTIONS='--exclude-dir=.svn'
Run Code Online (Sandbox Code Playgroud)
psychoschlumpf是正确的,但它只有你有最新版本的时候才有效grep.早期版本没有--exclude-dir选项.但是,如果你有一个非常大的代码库,那么双重操作grep可能需要永远.把它放在你.bashrc的无便携式.svngrep中:
alias sgrep='find . -path "*/.svn" -prune -o -print0 | xargs -0 grep'
Run Code Online (Sandbox Code Playgroud)
现在你可以这样做:
sgrep some_var
Run Code Online (Sandbox Code Playgroud)
......并获得预期的结果.
当然,如果你是一个疯狂的人喜欢我,谁只是拥有使用相同的.bashrc无处不在,你可以花费40小时的时间的过于复杂的bash函数,而不是放在那里. 或者,你可以等待像我这样疯狂的人在网上发布: