正则表达式[^ ..]无法在Mac OS中运行

时间:2016-10-22 20:38:46

标签: bash grep osx-yosemite

这是我的测试: 丰富的猫咪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。怎么了?

1 个答案:

答案 0 :(得分:2)

使用grep -v '[ab]'反转正面表达式,或更改正则表达式以进行完全匹配,即grep -E '^([^ab]+)$'

问题是你正在寻找没有a或b的东西的部分匹配。例如,在abc的情况下,匹配'c',因此包含该行。

您可以使用默认平台grep。那不是问题。