Я никогда не видел, чтобы система Linux исчерпала память просто потому, что она не перезагружалась достаточно часто. Если вы оставите пропущенную mamory программу, которая будет работать в течение длительного времени, она может съесть всю вашу память, но убийство этой программы вернет вас к чувствительной системе. Нет причин, по которым вам нужно перезагружаться во время обычного хода событий, кроме обновлений ядра.
Это можно решить, используя регулярное выражение с отрицательным lookbehind (которое экспериментально поддерживается в grep, как указано в комментарии от аранжировки):
$ grep -P '(?<!Mr )John Smith' file
Поскольку поддержка просто экспериментальна, вы можете использовать perl вместо:
$ perl -nle 'print if /(?<!Mr )John Smith/' file
Вы можете выполнить
command | grep 'John Smith' | grep -v 'Mr John Smith'
Чтобы использовать регулярные выражения, используйте ^ и $
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