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