如何反转一个grep表达式

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

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

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

289950 次浏览

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

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

grep --invert-match

你也可以使用find来做同样的事情:

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

更多信息在这里

在你的grep命令中添加-v选项来反转结果。

 grep "subscription" | grep -v "spec"

如前所述,反转是通过-v选项到grep实现的。让我补充一点(希望很有趣),你可以自己通过查找grep帮助文本来解决这个问题:

grep --help | grep invert

-v,——invert-match选择不匹配的行