以下grep表达式成功列出了当前目录和子目录中的所有.exe和.html文件。
ls -R |grep -E .*[\.exe]$\|.*[\.html]$
如何反转此结果以列出那些不是.html或.exe的结果。 (即!=
。)
答案 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, - 反向匹配选择不匹配的行