Можно ли с помощью grep искать экземпляры John Smith
, но исключать экземпляры Mr John Smith
?
Эту проблему можно решить с помощью регулярного выражения с отрицательным внешним видом (что экспериментально поддерживается в grep
, как указано в комментарии отrange):
$ 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