识别不包含具有特定字符串的文件的文件夹

Identify folders that do not have files with a certain string

第一次来这里,如果我问的方式不正确,请原谅。 我尝试过使用 grep -rL 以及 find 和 xargs 的变体,但没有什么能满足我的要求。我想确定哪些子文件夹(大约 500 个)没有任何带有字符串 "ObjectDate=true" 的文件(它们都是 xml 文件)。

谢谢!

感谢您的帮助。也许我可以说得更好。我有一个目录的大约 500 个子文件夹。这些子文件夹没有子文件夹。几乎所有文件夹都包含多个 xml 个文件,字符串为 "ObjectDate=true"。我想确定哪些子文件夹不包含任何带有字符串 "ObjectDate=true" 的 xml 文件。

下面的命令告诉我哪些文件不包含该字符串。结果太多,所以我想知道哪些文件夹没有包含该字符串的文件。

grep -rL "ObjectDate=true" /prod/he/log/dws/Usr//.xml

简单的方法是:

find . -type d -print |
while IFS= read -r dir
do
    if ! grep -m1 -q "ObjectDate=true" "$dir"/*.xml
    then
        echo "$dir"
    fi
done

假设没有包含换行符的目录名称。