Answers:
grep -v
是你的朋友:
grep --help | grep invert
-v,--invert-match选择不匹配的行
还请检查相关内容-L
(的补充-l
)。
-L,--files-without-match仅打印不包含匹配项的文件名
-e
可以使用多个(负)比赛选项:grep -v -e 'negphrase1' -e 'negphrase2'
grep -v 'negphrase1|negphrase2|negphrase3'
-E
作品将模式解释为扩展的正则表达式,即 grep -vE 'negphrase1|negphrase2|negphrase3'
grep "" /dev/null * | grep foo | grep -v bar | cut -d: -f1 | sort -u
(为什么要使用第一个grep?总是有一种方法:))
您还可以将其awk
用于这些目的,因为它可以使您以更清晰的方式执行更复杂的检查:
行不包含foo
:
awk '!/foo/'
行既不包含foo
也不包含bar
:
awk '!/foo/ && !/bar/'
既不含线foo
也不bar
含有任一foo2
或bar2
:
awk '!/foo/ && !/bar/ && (/foo2/ || /bar2/)'
等等。