Linux 中执行与egrep相反的命令?

Linux 中执行与egrep相反的命令?

我想找出文件中不存在哪些模式或单词。例子 :

测试.txt

marco 
polo
charlie 
anthony
john

egrep 'marco|polo' test.txt 将输出 marco 和 polo

但我想要一个命令来输出该单词(如果该单词不存在于文件中):

例如:egrep 'cindrella|daniel|polo' test.txt应该输出 cindrella 和 daniel 而不是 polo。

答案1

你想要反向greping。

printf "%s\n" cindrella daniel polo | grep -v -f test.txt
cindrella
daniel

在哪里

  • -v是反向选项
  • -f test.txt获取输入列表test.txt

答案2

如果 grep 不匹配,您可以回显该名称:

$ for i in cindrella daniel polo; do grep -q "$i" test.txt || echo "$i"; done
cindrella
daniel

-q安静模式,找到任何匹配后退出

相关内容