从1个目录中找到所有文件中的单词

时间:2015-12-17 01:36:36

标签: linux unix

我使用下面的命令在我的linux框中的所有文件中查找单词。但现在我想要排除1个目录,搜索应继续进行剩下的目录。

find /opt  -type f -exec grep  -l "Texttosearch" {} \;

请咨询。 TQ

2 个答案:

答案 0 :(得分:0)

您不能忽略所有目录中的初始搜索,但您可以在第一步之后从指定目录中删除文件。

find .  -type f -exec grep  -l "port" {} \;| grep -v <dir_name_to exclude>

答案 1 :(得分:0)

我是正则表达式的菜鸟,但我一直在关注教程here,它说^插入符号通常标记字符串的开头但具有不同的含义,这就像逻辑NOT或! =

  

插入符号在正则表达式中实际上可以有两种不同的含义。大多数情况下,它意味着匹配行开头的零长度模式。但是如果在字符类的开头使用它,它会颠倒字符类的含义。列出的字符集中未包含的所有内容都匹配。

/[^a-z]a/ 

Ma ry有 a 小羊羔。     而 Ma ry的每个地方     羔羊确定了     去吧。

结果显示,羊羔的小写配对“la”没有被拾取,但是拾取了玛丽的大写字母M(以及a所以“Ma”)。本教程的作者将插入符号称为“赞美”操作符。

也许您可以尝试将它与grep一起使用?

这里有一个在grep中使用的解释 - &gt; Regular Expressions in Grep Command with 10 Examples ...显示了它的用法并因此解释了

  

示例10.字符类中的异常   如果要搜索除方括号中的字符以外的所有字符,请使用^(插入符号)符号作为打开方括号后的第一个字符。以下示例搜索一行不以linux中字典word文件中的元音字母开头。