这是我的测试: 丰富的猫咪foofile
abc
def
aef
bde
richadminsMini:〜富文件foofile
foofile: ASCII text
richadminsMini:〜富$ ggrep -V ggrep(GNU grep)2.26 由Homebrew打包 版权所有(C)2016 Free Software Foundation,Inc。
richadminsMini:〜富裕的ggrep' b' foofile
abc
bde
richadminsMini:〜富裕的ggrep' a' foofile
abc
aef
richadminsMini:~ rich$ ggrep '[ab]' foofile
abc
aef
bde
richadminsMini:~ rich$ ggrep '[^ab]' foofile
abc
def
aef
bde
我预计排除第1,3和4行...... 我的shell是bash。怎么了?
答案 0 :(得分:2)
使用grep -v '[ab]'
反转正面表达式,或更改正则表达式以进行完全匹配,即grep -E '^([^ab]+)$'
。
问题是你正在寻找没有a或b的东西的部分匹配。例如,在abc的情况下,匹配'c',因此包含该行。
您可以使用默认平台grep
。那不是问题。