优化我的grep来搜索“$ DIR / www”?

时间:2014-03-17 01:07:43

标签: linux grep find

我正在尝试通过~100个目录对URL进行不区分大小写的搜索。每个目录的结构是:

directory/
  www
  logs
  cgi-bin
  emailer

有时,trunkbranches代替www,但这是唯一的区别。

如何为http://URL优化我的grep以便更快地找到它?到目前为止,我有:

  • 将LC_ALL / LANG更改为C(不区分大小写)
  • 实施了最大深度并结合了find / grep


find . -maxdepth 2 -name "www" -exec grep -RliI "http://URL" {} \; >> ~/results.txt

但我想优化它,以便它不会击中这些特定的目录:

  • WWW /高速缓存
  • WWW /图像

到目前为止我已经尝试过了:

find . -maxdepth 2 -name "www" -path -prune -o -name '*cache*' -exec grep -RliI "http://URL" {} \;

但它似乎没有修剪它吗?如何调整它以排除?

另请注意,grep的版本已旧,因此不支持--exclude-dir,否则我会使用它。

1 个答案:

答案 0 :(得分:2)

尝试使用-not -path而不是-prune

find . -maxdepth 2 -name "www" -not -path "*/cache/*" -not -path "*/images/*" -exec grep -RliI "http://URL" {} \;