是否可以使用 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