对不同文件夹中的预定义文件名进行递归搜索

时间:2017-01-09 11:49:36

标签: linux grep

所以我有这个文件结构:

Py4JJavaError

我需要的是在每个File "<ipython-input-18-4cc0cb8c6fe7>", line 3, in parse UnicodeEncodeError: 'ascii' codec can't encode character u'\xab' in position 125: ordinal not in range(128) 文件中找到一个字符串,我已经尝试了

/var/www/html/website1/app/config/database.php
/var/www/html/website2/app/config/database.php
...

但它似乎没有认识到这条道路。

我只是想知道是否有办法实现我的目标。

2 个答案:

答案 0 :(得分:0)

find /var -maxdepth 5 -mindepth 5 -name database.php -type f | xargs grep -nrw "string"

如果您希望文件名中包含“newlines or or types of white space”:

find /var -maxdepth 5 -mindepth 5 -name database.php -type f -print0 | xargs -0 grep -nrw "string"

答案 1 :(得分:0)

如果您要搜索的所有文件都将按照问题中的模式进行搜索,那么您不需要进行递归搜索,您可以单独使用globbing进行搜索。您的APC可以在路径中的任何位置存在(并且可以扩展),而不仅仅是在最后。

*

这样做的好处是只能查找您指定为重要的路径。

请注意,由于您已经说过要搜索字符串而不是RE,因此grep -n -F -w "string" /var/www/html/*/app/config/database.php 选项可能是合适的。

如果找不到您认为应该存在的文件,您可以尝试这样的事情:

-F

验证您是否真正在寻找此文件的正确位置。