grep 查找前面没有其他字符串的字符串

grep 查找前面没有其他字符串的字符串

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

答案1

可以使用具有负向后视的正则表达式来解决此问题(grep正如来自arrange的评论所指出的,该正则表达式得到了实验支持):

$ grep -P '(?<!Mr )John Smith' file

由于该支持还处于实验阶段,您可能希望使用perl

$ perl -nle 'print if /(?<!Mr )John Smith/' file

答案2

您可以执行

command | grep 'John Smith' | grep -v 'Mr John Smith'

答案3

要使用正则表达式,请使用 ^ 和 $

grep "^John Smith$"

^ 表示从开头匹配,$ 表示从结尾匹配。

语法将根据您在哪个文件中搜索的内容而有所不同。

您可以将正则表达式与 sed、grep、awk 等结合使用。

例子

bodhi@Ubuntu:~ cat file
Mr John Smith
John Smith
John
Smith

bodhi@Ubuntu:~ grep "^John Smith$" file
John Smith

相关内容