【问题标题】:find a word from all files excluding 1 directory从除 1 个目录之外的所有文件中查找一个单词
【发布时间】:2015-12-17 01:36:35
【问题描述】:

我正在使用以下命令在我的 linux 机器中的所有文件中查找一个单词。但现在我想排除 1 个目录,然后继续搜索剩余的目录。

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

请多多指教。 tq

【问题讨论】:

    标签: linux unix


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢您的及时回复。
    【解决方案2】:

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

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

    /[^a-z]a/ 
    

    Mary 有一只小羊羔。 到处都是Mary 去了,小羊肯定 去。

    正如结果显示,小写配对“la”来自lamb 没有被拾取,但大写M 来自Mary(连同a 所以“Ma”)被拾取。本教程的作者将插入符号称为“恭维”运算符。

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

    这里有 grep 使用的解释 --> Regular Expressions in Grep Command with 10 Examples ... 它显示了它的用法并解释了它

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

    【讨论】:

      最近更新 更多