O padrão OS X grep suporta apenas Expressões regulares básicas e estendidas conforme definido em POSIX e explicado em re_format(7) para o OS X. Esses tipos não suportam look-behind negativo.
Se você quiser uma sintaxe de expressão regular mais poderosa, combinada com a capacidade de grep s de pesquisar um diretório recursivamente para um padrão de expressão regular, considere usar ack , que é escrito em Perl e, portanto, suporta sua sintaxe regex, incluindo look-behind negativo.
O equivalente com ack seria:
ack '(?<!notthis)butthis'
Você pode instalar ack por meio de:
-
Homebrew com
brew install ack - O módulo no CPAN do Perl
- Download do único arquivo executável na página inicial
É importante notar que o GNU grep tem uma opção -P para ativar a sintaxe de regex compatível com Perl, no entanto ele não está incluído no OS X - você pode instalá-lo através do Homebrew se quiser com brew install grep . No Linux, estará disponível por padrão.
Se você estiver alternando bastante entre o Linux e o OS X, por exemplo, recomendo usar o GNU grep no OS X por padrão ou usar ack como uma substituição grep .