我有一个名为lists的目录,并在其中有几个子目录,名为lists-01,lists-02等等。 在每个子目录中,我都有一个被称为清单的sript。 我想使用grep命令在每个脚本“清单”中搜索“margin”,并且想知道包含单词“margin”的特定清单脚本。 我试过使用grep命令在子目录中搜索
grep "margin" list*/checklist
但是,这并没有给出任何结果。
我有一个名为lists的目录,并在其中有几个子目录,名为lists-01,lists-02等等。 在每个子目录中,我都有一个被称为清单的sript。 我想使用grep命令在每个脚本“清单”中搜索“margin”,并且想知道包含单词“margin”的特定清单脚本。 我试过使用grep命令在子目录中搜索
grep "margin" list*/checklist
但是,这并没有给出任何结果。
如何:
find lists -name checklist -type f -exec grep -H margin {} \;
,说...发现,在被称为lists
目录开始,以下所有目录,所有的文件名为checklist
,并期待在他们的字margin
打印的文件名,如果它在那里。
如果您有现代的find,
,您可以用+
替换\;
,以允许每个find
搜索多个文件并提高您的查询效率。
您可以使用--include
来选择你想要的文件:
grep -Rl --include='*checklist' "margin" .
我试图找出如何包括list-0*/
目录,还是没能找到一种方法。
请注意,您的尝试是相当准确的。你只需要添加-R
递归:
grep -R "margin" list-[0-9]*/checklist
它会搜索所有命名清单递归的文件,然后在这些文件上运行grep命令查找单词“保证金”。 -l选项只会给你文件名和选项-w用于完全匹配。
find ~/list -type f -name checklist -exec grep -lw "margin" {} +