我有一个名为lists的目录,其中有几个子目录,名为lists-01,lists-02等。 在每个子目录中,我都有一个名为checklist的sript。 我想使用grep命令在每个脚本“清单”中搜索“margin”,并想知道包含单词“margin”的特定清单脚本。 我尝试使用
grep "margin" list*/checklist
但是,这没有给出任何结果。
答案 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" {} +