我一直在试图找出这个命令的语法:
grep ! error_log | find /home/foo/public_html/ -mmin -60
Run Code Online (Sandbox Code Playgroud)
要么
grep '[^error_log]' | find /home/baumerf/public_html/ -mmin -60
Run Code Online (Sandbox Code Playgroud)
我需要查看所有已修改的文件,除了那些已命名的文件error_log.
我在这里读过它,但只发现了一个not-regex模式.
Mot*_*tti 1634
grep -v 是你的朋友:
grep --help | grep invert
Run Code Online (Sandbox Code Playgroud)
-v, - inverse-match选择不匹配的行
另请查看相关的-L(补充-l).
-L, - files-without-match仅打印不包含匹配项的FILE名称
fed*_*qui 123
您还可以将其awk用于这些目的,因为它允许您以更清晰的方式执行更复杂的检查:
不包含的行foo:
awk '!/foo/'
Run Code Online (Sandbox Code Playgroud)
既不包含foo也不包含bar:
awk '!/foo/ && !/bar/'
Run Code Online (Sandbox Code Playgroud)
既不包含foo也不bar包含其中的行foo2或bar2:
awk '!/foo/ && !/bar/ && (/foo2/ || /bar2/)'
Run Code Online (Sandbox Code Playgroud)
等等.
小智 12
在你的情况下,你可能不想使用grep,而是在find命令中添加一个否定子句,例如
find /home/baumerf/public_html/ -mmin -60 -not -name error_log
Run Code Online (Sandbox Code Playgroud)
如果要在名称中包含通配符,则必须将它们转义,例如,排除带有后缀.log的文件:
find /home/baumerf/public_html/ -mmin -60 -not -name \*.log
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
773538 次 |
| 最近记录: |