这可以使用带有负向后视的正则表达式来解决(这在实验中得到了支持,grep正如来自安排的评论所指出的那样):
$ grep -P '(?<!Mr )John Smith' file
Run Code Online (Sandbox Code Playgroud)
由于该支持只是实验性的,您可能想perl改用:
$ perl -nle 'print if /(?<!Mr )John Smith/' file
Run Code Online (Sandbox Code Playgroud)
你可以执行
command | grep 'John Smith' | grep -v 'Mr John Smith'
Run Code Online (Sandbox Code Playgroud)