【问题标题】:excluding .svn .git files from find+xargs+grep pipe从 find+xargs+grep 管道中排除 .svn .git 文件
【发布时间】:2015-08-30 04:26:56
【问题描述】:

我有一个 Emacs 函数 (fgf "thing"),它创建了一个如下所示的子进程:

find .  \( -type f -a \! -regex '\.(svn|git)' \) -print0 | xargs -0 grep -nH -e 'thing'

基本上我不希望grep 查看.git.svn 文件中的任何 个文件。我该怎么做?

【问题讨论】:

  • 您发布的命令有什么问题?

标签: linux find xargs


【解决方案1】:
find . -type d '(' -name .svn -o -name .git ')' -prune -o -type f -exec grep -nH -e 'thing' {} +

使用-prune 避免递归到.svn.git 目录比使用正则表达式更好。另外-exec-print0 | xargs -0 更可取。

【讨论】:

  • 谢谢。不太行。得到一个目录列表和输出 grep: : Is a directory
  • 通过您的-type f 编辑,它运行良好。非常感谢!
猜你喜欢
  • 2018-12-11
  • 2018-10-13
  • 2016-04-21
  • 1970-01-01
  • 2016-08-22
  • 2012-08-07
  • 2010-12-02
  • 1970-01-01
  • 2012-08-17
相关资源
最近更新 更多