我可以使用什么简洁的命令来查找所有不包含文本字符串的文件?
我没有运气尝试过这个(使用-v反转grep的参数):
find . -exec grep -v -l shared.php {} \;
有人说这行得通:
find . ! -exec grep -l shared.php {} \;
但这似乎对我不起作用。
此页面包含以下示例:
find ./logs -size +1c > t._tmp
while read filename
do
grep -q "Process Complete" $filename
if [ $? -ne 0 ] ; then
echo $filename
fi
done < t._tmp
rm -f t_tmp
但这很麻烦,而且一点也不简洁。
ps:我知道grep -L *
可以做到这一点,但是我真正想知道的是如何将find命令与grep结合使用以排除文件。
pss:另外,我不确定如何使grep包含带有grep -L *
语法的子目录,但是我仍然想知道如何在find
:)中使用它。
1
您编写的第一个命令在我的计算机上运行良好。您正在使用什么版本的查找?而且,由于我们的话,可能指定UNIX你运行..
—
rahmu
@rahmu,此命令几乎总是无法按您期望的那样工作。您可能有一个非常具体的案例。请参阅unix.stackexchange.com/questions/339619/…–
—
sgnsajgon