标签: shell unix grep
我在一个大文件中搜索所有不包含X和Y的行。所以我尝试了这个:
grep -v X bla.txt | grep -v Y
问题是这会删除所有带有X或Y的行。我想保留具有X但不是Y和Y而不是X的行。我该怎么做?
答案 0 :(得分:3)
您可以使用正则表达式替换:
grep -Ev 'X.*Y|Y.*X' file
甚至更好的是使用awk(避免重复):
awk '!(/X/ && /Y/)' file
只有在一行中找不到X和Y时,此awk才会打印行。
X
Y