我需要这样的东西:
grep ^"unwanted_word"XXXXXXXX
我需要这样的东西:
grep ^"unwanted_word"XXXXXXXX
当前回答
如果您的grep支持Perl正则表达式与-P选项,您可以这样做(如果bash;如果TCSH你需要转义!):
grep -P '(?!.*unwanted_word)keyword' file
演示:
$ cat file
foo1
foo2
foo3
foo4
bar
baz
现在让我们列出除foo3之外的所有foo
$ grep -P '(?!.*foo3)foo' file
foo1
foo2
foo4
$
其他回答
我有一个目录,里面有很多文件。我想找到所有不包含字符串“加速”的文件,所以我成功地使用了以下命令:
grep -iL speedup *
如果您的grep支持Perl正则表达式与-P选项,您可以这样做(如果bash;如果TCSH你需要转义!):
grep -P '(?!.*unwanted_word)keyword' file
演示:
$ cat file
foo1
foo2
foo3
foo4
bar
baz
现在让我们列出除foo3之外的所有foo
$ grep -P '(?!.*foo3)foo' file
foo1
foo2
foo4
$
-v选项将显示与模式不匹配的所有行。
grep -v ^unwanted_word
使用grep -v进行反向匹配:
grep -v "unwanted word" file pattern
你可以使用grep的-v (for——invert-match)选项as:
grep -v "unwanted_word" file | grep XXXXXXXX
grep -v "unwanted_word" file将过滤包含unwanted_word的行,grep XXXXXXXX将只列出模式为XXXXXXXX的行。
编辑:
从您的注释中,看起来您想要列出所有没有unwanted_word的行。在这种情况下,你只需要:
grep -v 'unwanted_word' file