Grep -v有两个单词而且只有完全匹配

时间:2015-08-21 18:55:48

标签: shell unix grep

我在一个大文件中搜索所有不包含X和Y的行。所以我尝试了这个:

grep -v X bla.txt | grep -v Y

问题是这会删除所有带有X或Y的行。我想保留具有X但不是Y和Y而不是X的行。我该怎么做?

1 个答案:

答案 0 :(得分:3)

您可以使用正则表达式替换:

grep -Ev 'X.*Y|Y.*X' file

甚至更好的是使用awk(避免重复):

awk '!(/X/ && /Y/)' file

只有在一行中找不到XY时,此awk才会打印行。