Isso pode ser resolvido usando uma expressão regular com lookbehind negativo (que é experimentalmente suportado em grep
, como apontado pelo comentário do organizador):
$ grep -P '(?<!Mr )John Smith' file
Como o suporte é apenas experimental, convém usar perl
:
$ perl -nle 'print if /(?<!Mr )John Smith/' file