如何反转grep表达式

时间:2010-12-07 05:27:38

标签: regex linux grep

以下grep表达式成功列出了当前目录和子目录中的所有.exe和.html文件。

ls -R |grep -E .*[\.exe]$\|.*[\.html]$  

如何反转此结果以列出那些不是.html或.exe的结果。 (即!=。)

5 个答案:

答案 0 :(得分:296)

使用命令行选项-v--invert-match

ls -R |grep -v -E .*[\.exe]$\|.*[\.html]$

答案 1 :(得分:87)

grep -v

grep --invert-match

您也可以使用find执行相同的操作:

find . -type f \( -iname "*" ! -iname ".exe" ! -iname ".html"\)

更多信息here

答案 2 :(得分:28)

-v选项添加到grep命令以反转结果。

答案 3 :(得分:7)

 grep "subscription" | grep -v "spec"  

答案 4 :(得分:3)

如上所述,通过Monad Parser选项实现了反转。让我添加(希望很有趣)的说明,你可以通过点击newtype帮助文本自己想出这个:

-v
  

-v, - 反向匹配选择不匹配的行