Grep Pattern и следующее слово

У меня есть текстовый файл с такими строками (только две последние строки):

1 sometext Pattern 2 sometext Pattern 5Asda5} 3 sometext Pattern asd2-asd 4 sometext Pattern ad 5 sometext Pattern foobar 6 sometext Pattern {asd 7 Pattern Pattern something 123asd 8 Pattern sometext asd 9 Pattern 5h{1,2}b 

Мне нужно найти каждую строку с «Шаблон» в качестве последнего слова. Слово в этом случае определяется как строка с буквами и дефисами. Могут быть ведущие пробелы или пробелы, следующие за строкой (например: Pattern \ t \ t \ t \ t \ t $)

Мой взгляд на это

 egrep '(\bPattern\b +[^a-zA-Z\-]{2,} *$)|(\bPattern\b *$)' file.txt 

найти все строки с шаблоном, за которым следуют пробелы и не-слово в конце или с шаблоном в конце. Но первая часть работает не так, как предполагалось. Мне нужен другой способ найти не-слова.

Не могли бы вы показать мне путь к линии grep 1,2,3,6,9, но не к остальным? Мне нравится держаться подальше от awk, поскольку мы не покрывали его в классе.

One Solution collect form web for “Grep Pattern и следующее слово”

Обратите внимание, что \b , в реализациях grep которые его поддерживают, – это переход между символом слова (alnum и underscore) и символом без слова (или наоборот). Итак, \bPattern\b будет соответствовать, например, в foo-Pattern.bar .

Если вы ищете слово с разметкой в ​​виде пустого поля, вы не можете использовать \b .

Здесь вам кажется, что вы ищете Pattern ограниченным разделителем, за которым следует список нулевых или более строк с разделителями, которые имеют символы, отличные от букв, и - , поэтому:

 non_word='([^[:blank:]]*[^[:blank:][:alpha:]-][^[:blank:]]*)' grep -E "(^|[[:blank:]])Pattern([[:blank:]]+$non_word)*[[:blank:]]*$" - non_word='([^[:blank:]]*[^[:blank:][:alpha:]-][^[:blank:]]*)' grep -E "(^|[[:blank:]])Pattern([[:blank:]]+$non_word)*[[:blank:]]*$" 
  • grep searchstring / etc / crontab странное поведение в скрипте BASH
  • использование egrep & regex
  • Печать определенной строки с awk с вывода df -h
  • Несколько команд grep с сортировкой
  • Получение комбинированного подсчета всех вхождений строки в несколько каталогов?
  • извлечь столбец из большого текстового файла
  • Слова Grep в файле затем скопируйте файл
  • Есть ли способ получить эффект объединения grep -v с grep -A?
  • Запуск действия при посещении URL-адреса
  • Как указать совпадающие шаблоны, исключая некоторые файлы с PATTERN в именах файлов
  • Хэш-файл Emacs temp dot не существует
  • Поиск файла для строк NOT, содержащих фразу с контекстом
  • Interesting Posts

    Случайно удален / usr / local / bin / node

    Как проверить программно, если кабель Ethernet подключен?

    Компилятор C не может создавать исполняемые файлы

    Как создать веб-страницы в моем домашнем каталоге и настроить веб-сервер в своем веб-браузере?

    Изменение выходной частоты голоса

    "Проверка подключения к Интернету с одним слоем"

    ls default сортировка несогласованная

    Postfix не работает с TLS, но Dovecot делает

    разбиение изображения на несколько частей

    Приложение при сбое сервера при доступе через браузер – после полного обновления системы

    Как извлечь первое целое из текстовой строки в столбце файла с разделителями табуляции?

    Разделяйте неизменные данные из центрального хранилища в сети

    Каковы минимальные привилегии, которые владелец требует в файле, чтобы все еще делать chmod в файле?

    Беспроводное устройство не отображается

    Создание .img из tarball: устройства / dev / loop

    Linux и Unix - лучшая ОС в мире.