我有数千个文件夹,html
每个文件夹中都有一个文件。如果 grepexample.com
在文件中找不到匹配项,我想删除整个文件夹html
。
我知道如何删除不匹配的文件。例如像这样:
grep -ZrLIi "example.com" "/dir/htmls/" | xargs -0 -I {} rm -f --
但不是删除文件本身。如何删除文件所在的整个文件夹,包括其中的其他文件?
答案1
这假设您有 GNU coreutils,因为您在 grep 中使用非 POSIX 标志:
grep -ZrLIiF "example.com" /dir/htmls | xargs -0 dirname -z | sort -zu | xargs -0 echo rm -rf
如果输出看起来正确,请删除echo
前面的内容。rm
我还添加了-F
进行文字匹配的选项,而不是正则表达式匹配。