【发布时间】:2015-02-22 22:22:05
【问题描述】:
第一次来这里,如果我没有以正确的方式问这个问题,请原谅。 我曾尝试使用 grep -rL 以及 find 和 xargs 的变体,但没有什么能完全满足我的要求。我想确定哪些子文件夹(大约 500 个)没有任何带有字符串“ObjectDate=true”的文件(它们都是 xml 文件)。
谢谢!
感谢您的帮助。也许我可以说得更好。我有一个目录的大约 500 个子文件夹。这些子文件夹没有子文件夹。几乎所有文件夹都包含多个带有字符串“ObjectDate=true”的 xml 文件。我想用字符串“ObjectDate=true”确定哪些子文件夹不包含任何 xml 文件。
下面的命令显示了哪些文件不包含该字符串。结果太多了,所以我想知道哪些文件夹没有包含该字符串的文件。
grep -rL "ObjectDate=true" /prod/he/log/dws/Usr//.xml
【问题讨论】:
-
这是一个准备不足的问题(注意:反对票不是我的;D)。目录结构是什么?目录是否遵循某些命名约定?
-
find -mindepth 1 -maxdepth 1 -type d -print0 | while IFS= -r -d $'\0' dir; do [[ -n $(find "$dir" -type f -name "*.xml" -exec grep -q "ObjectDate=true" {} \; -print -quit) ]] || echo "Missing $dir"; done之类的东西可能会起作用,尽管我还没有测试过,而且它绝对不是最佳的。也不确定subfolders do not have是指仅在子文件夹的顶层或任何地方,以上假定为后者。 -
感谢您的帮助。