grep + регулярное выражение для соответствия слову, расположенному перед последним словом

Я хочу захватить все строки, у которых есть (XXXX) слово перед последним словом

а xxxxx – номер

/opt/OV/bin/opcagt -status scopeux Perf Agent data collector (5102) Running midaemon Measurement Interface daemon (5110) Running ttd ARM registration daemon Running perfalarm Alarm generator (5111) Running agtrep OV Discovery Agent AGENT,AgtRep (5520) Running coda OV Performance Core COREXT (5529) Running opcacta OVO Action Agent AGENT,EA (5427) Running opcle OVO Logfile Encapsulator AGENT,EA (5443) Running opcmona OVO Monitor Agent AGENT,EA Running opcmsga OVO Message Agent AGENT,EA (5435) Running opcmsgi OVO Message Interceptor AGENT,EA (5553) Running ovbbccb OV Communication Broker CORE (5352) Running ovcd OV Control CORE (5344) Running ovconfd OV Config and Deploy COREXT (5383) Running 

Я стараюсь

 /opt/OV/bin/opcagt -status | grep [0-9] 

но этот синтаксис grep не записывает слово перед последним словом

Ожидаемые результаты:

 scopeux Perf Agent data collector (5102) Running midaemon Measurement Interface daemon (5110) Running perfalarm Alarm generator (5111) Running agtrep OV Discovery Agent AGENT,AgtRep (5520) Running coda OV Performance Core COREXT (5529) Running opcacta OVO Action Agent AGENT,EA (5427) Running opcle OVO Logfile Encapsulator AGENT,EA (5443) Running opcmsga OVO Message Agent AGENT,EA (5435) Running opcmsgi OVO Message Interceptor AGENT,EA (5553) Running ovbbccb OV Communication Broker CORE (5352) Running ovcd OV Control CORE (5344) Running ovconfd OV Config and Deploy COREXT (5383) Running 

3 Solutions collect form web for “grep + регулярное выражение для соответствия слову, расположенному перед последним словом”

пытаться

 /opt/OV/bin/opcagt -status | awk 'NF>2 && $(NF-1) ~ /\([0-9]*\)/ ' 

где

  • $(NF-1) перед последним полем
  • ~ попросить awk выполнить сопоставление шаблонов
  • /\([0-0]*\)/ pattern – ( , любое число цифр и ) (вы можете использовать [0-9] [0-9] *, чтобы иметь хотя бы один.
  • действие по умолчанию – печать.

Поиск строк, содержащих рисунок (4-digits)<spaces>word в конце строки

 grep -E '\([0-9]{4}\)\s*\w+$' 

Ты можешь сделать:

 ... | grep -E '[[:blank:]]\([0-9]{4}\)[[:blank:]]+[^[[:blank:]]+$' 
  • [[:blank:]]\([0-9]{4}\) соответствует пробелу, за которым следуют 4 цифры

  • [[:blank:]]+[^[[:blank:]]+$ соответствует одному или нескольким пробелам, за которыми следует один или несколько символов без пробелов, в конце.

Пример:

 $ cat file.txt scopeux Perf Agent data collector (5102) Running midaemon Measurement Interface daemon (5110) Running ttd ARM registration daemon Running perfalarm Alarm generator (5111) Running agtrep OV Discovery Agent AGENT,AgtRep (5520) Running coda OV Performance Core COREXT (5529) Running opcacta OVO Action Agent AGENT,EA (5427) Running opcle OVO Logfile Encapsulator AGENT,EA (5443) Running opcmona OVO Monitor Agent AGENT,EA Running opcmsga OVO Message Agent AGENT,EA (5435) Running opcmsgi OVO Message Interceptor AGENT,EA (5553) Running ovbbccb OV Communication Broker CORE (5352) Running ovcd OV Control CORE (5344) Running ovconfd OV Config and Deploy COREXT (5383) Running $ grep -E '[[:blank:]]\([0-9]{4}\)[[:blank:]]+[^[[:blank:]]+$' file.txt scopeux Perf Agent data collector (5102) Running midaemon Measurement Interface daemon (5110) Running perfalarm Alarm generator (5111) Running agtrep OV Discovery Agent AGENT,AgtRep (5520) Running coda OV Performance Core COREXT (5529) Running opcacta OVO Action Agent AGENT,EA (5427) Running opcle OVO Logfile Encapsulator AGENT,EA (5443) Running opcmsga OVO Message Agent AGENT,EA (5435) Running opcmsgi OVO Message Interceptor AGENT,EA (5553) Running ovbbccb OV Communication Broker CORE (5352) Running ovcd OV Control CORE (5344) Running ovconfd OV Config and Deploy COREXT (5383) Running 
  • Как распечатать последнее слово, которое содержит разделитель поля
  • Избавиться от десятичного разряда и отменить запятую
  • Использование sed для цветного вывода из команды на Solaris
  • Редактирование AIX - на месте
  • замените с начала строки на 1 из нескольких шаблонов в конец другой строки со вторым шаблоном
  • Как предупредить sed -i от уничтожения символических ссылок?
  • Как удалить комментарии для проекта java с sed?
  • Поиск дубликатов экземпляров тега в файле
  • Sed для копирования части имени файла в другое содержимое файла с той же подстрокой
  • Как найти и заменить новую строку?
  • Объединение трех последовательных строк с заменой
  • Как экспортировать данные в терминал в файл (например, файл csv)
  • Interesting Posts

    Как сделать N-образный diff?

    Как уменьшить размер pdf-файла, содержащего изображения?

    Когда будут dpkg удалять каталоги?

    Как смонтировать съемный носитель в / media / <LABEL> автоматически при вставке без какой-либо среды рабочего стола?

    systemd slow boot – systemd-tmpfiles-setup

    Как использовать регулярное выражение с AWK для замены строки?

    Как удалить строку в каждом имени файла

    systemd: Как выполнять задание как периодически, так и один раз при завершении работы системы?

    Параметр -cp для команды java

    Разделение подкачки для нескольких распределений

    bash: перенаправление ввода-вывода, но не с суффиксами

    Искать в меньшей степени с обтеканием в EOF

    Как вы скомпилируете зависимости вручную? Cygwin

    Почему у bash по умолчанию не было некоторых команд, которые я использовал в истории, но у меня есть другие?

    ввести разрыв строки в той же позиции на основе другого файла

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