我需要这样的东西:

grep ^"unwanted_word"XXXXXXXX

当前回答

你可以使用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

其他回答

我有一个目录,里面有很多文件。我想找到所有不包含字符串“加速”的文件,所以我成功地使用了以下命令:

grep -iL speedup *

正确的解决方案是使用grep -v "word"文件,它的awk等价:

awk '!/word/' file

然而,如果你碰巧有一个更复杂的情况,你想要,比如,XXX出现,YYY不出现,那么awk就很方便了,而不是通过管道处理几个grep:

awk '/XXX/ && !/YYY/' file
#    ^^^^^    ^^^^^^
# I want it      |
#            I don't want it

你甚至可以说一些更复杂的东西。例如:我想要那些包含XXX或YYY的行,但不包含ZZZ:

awk '(/XXX/ || /YYY/) && !/ZZZ/' file

etc.

你可以使用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

使用grep -v进行反向匹配:

grep -v "unwanted word" file pattern

-v选项将显示与模式不匹配的所有行。

grep -v ^unwanted_word