Intereting Posts
В чем разница между ~ / .config / autostart и ~ / .config / autostart-scripts? Ubuntu 14.04 + LibreOffice 4.2 словари для проверки орфографии не выходят Где будет использоваться мое полное имя? Проблемы с установкой языка Джулии Как установить Canon PIXMA iP1600? 16.04 – Как предоставить доступ к записи в папку / файл после разговора Я столкнулся с ошибкой gconf2 при установке некоторых пакетов, что мне делать? Как отключить наложение ярлыков клавиш Unity? Фиксация ключа хозяина при регистрации SSH отличается от того, который находится в ключевом поколении Двойной дисплей на Macbook Pro 9,1 с Ubuntu 14.04 Установка Ubuntu не распознает разделение диска Каков наилучший способ обновления ядра Linux, если у меня нет подключения к Интернету? Как настроить размер шрифта в Ubuntu Software Center? Разверните окно на свободное место на экране в KDE Нет результата на `gpg –fingerprint` при получении ключа для Launchpad

grep для строки, которой не предшествует другая строка

Возможно ли, используя grep, искать экземпляры John Smith но исключать экземпляры Mr John Smith ?

Это можно решить, используя регулярное выражение с отрицательным 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