如何使用grep匹配所有不匹配特定模式的行?我试过这个:
grep
grep '[^foo]'
grep -v是你的朋友:
grep -v
grep --help | grep invert
-v,--invert-map选择不匹配的行
还要检查相关的-L(-l的补集)。
-L
-l
-L,--files-no-Match仅打印不包含匹配项的文件名
您还可以将awk用于这些目的,因为它允许您以更清晰的方式执行更复杂的检查:
awk
不包含foo的行:
foo
awk '!/foo/'
既不包含foo也不包含bar的行:
bar
awk '!/foo/ && !/bar/'
既不包含foo也不包含bar但包含foo2或bar2的行:
foo2
bar2
awk '!/foo/ && !/bar/ && (/foo2/ || /bar2/)'
诸如此类。
在您的情况下,您可能不想使用grep,而是在查找命令中添加一个否定子句,例如:
find /home/baumerf/public_html/ -mmin -60 -not -name error_log
如果您想在名称中包含通配符,则必须对它们进行转义,例如排除后缀为. log的文件:
find /home/baumerf/public_html/ -mmin -60 -not -name \*.log