使用grep进行负匹配(匹配不包含“foo”的行)

41 浏览
0 Comments

使用grep进行负匹配(匹配不包含“foo”的行)

如何使用grep匹配所有不符合特定模式的行?我尝试了这个:

grep '[^foo]'

admin 更改状态以发布 2023年5月24日
0
0 Comments

你也可以使用 awk 来实现这些目的,因为它允许你以更清晰的方式进行更复杂的检查:

不包含 foo 的行:

awk '!/foo/'

既不包含 foo 也不包含 bar 的行:

awk '!/foo/ && !/bar/'

既不包含 foo 也不包含 bar,但包含 foo2bar2 的行:

awk '!/foo/ && !/bar/ && (/foo2/ || /bar2/)'

等等。

0
0 Comments

grep -v 是你的好朋友:

grep --help | grep invert  

-v, --invert-match 选择不匹配的行

还要看看相关的 -L-l 的补集)。

-L, --files-without-match 只打印不包含匹配项的文件名

0