grep命令在子目录中搜索

时间:2014-09-22 10:10:15

标签: unix grep

我有一个名为lists的目录,其中有几个子目录,名为lists-01,lists-02等。 在每个子目录中,我都有一个名为checklist的sript。 我想使用grep命令在每个脚本“清单”中搜索“margin”,并想知道包含单词“margin”的特定清单脚本。 我尝试使用

 grep "margin" list*/checklist    

但是,这没有给出任何结果。

3 个答案:

答案 0 :(得分:1)

您可以使用--include来选择所需的文件:

grep -Rl --include='*checklist' "margin" .

我想弄清楚如何包含list-0*/目录,仍然无法找到方法。


另请注意,您的尝试非常准确。您只需要为递归添加-R

grep -R "margin" list-[0-9]*/checklist

答案 1 :(得分:0)

怎么样:

find lists -name checklist -type f -exec grep -H margin {} \;

那说...从名为lists的目录开始,以及下面的所有目录,查找所有名为checklist的文件,并在其中查找单词margin打印文件名,如果它在那里。

如果您使用现代find,,则可以将\;替换为+,以允许每个find搜索多个文件,从而提高查询效率。< / p>

答案 2 :(得分:0)

它将以递归方式搜索名为checklist的所有文件,然后对这些文件运行grep命令以查找单词&#34; margin&#34;。 -l选项只提供文件名,选项-w用于完全匹配。

find ~/list -type f -name checklist -exec grep -lw "margin" {} +