grep 用于前面没有另一个字符串的字符串

Sam*_*ngs 10 regex grep

是否可以使用 grep 搜索 的实例John Smith但排除 的实例Mr John Smith

jco*_*ado 9

这可以使用带有负向后视的正则表达式来解决(这在实验中得到了支持,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)


enz*_*tib 6

你可以执行

command | grep 'John Smith' | grep -v 'Mr John Smith'
Run Code Online (Sandbox Code Playgroud)

  • 好主意,但如果该行有“John Smith Mr John Smith John Smith”,则行不通 (2认同)