grep вхождения после матча - PullRequest
       7

grep вхождения после матча

0 голосов
/ 15 октября 2018

Я пытаюсь найти вхождения для 2 сценариев: 1. до 1-го пробела 2. до конца строки

Пример

-Dcatalina.base=/apps/kio/jal/current/mi_loki_porf -Dcatalina.home=/apps/kio/jal/current/mi_loki_porf
-Djava.io.tmpdir=/apps/kio/jal/current/mi_loki_porf/temp org.apache.catalina.startup.Bootstrap start
  1. Я хотел извлечь вхождения после слова '-Dcatalina.base =' перед первым пробелом, и это было бы / apps / kio / jal / current / mi_loki_porf

  2. Извлечь вхожденияпосле слова '-Dcatalina.base', но до конца строки, и это будет / apps / kio / jal / current / mi_loki_porf -Dcatalina.home = / apps / kio / jal / current / mi_loki_porf

Кроме того, как мне подходить, если я понятия не имею о случаях после матча, скажем, вхождения после '-Dcatalina.base =' могут быть словами или буквенно-цифровыми или могут быть только специальными символами

-Dcatalina.base=*(76yhg5)
or -Dcatalina.base=123345
or -Dcatalina.base=hellohowareyou
or -Dcatalina.base= *&^%$

То, что я пробовал

grep -Po '(?<=-Dcatalina.base=).*' my.log

, и это дает мне весь матч после -Dcatalina.base

1 Ответ

0 голосов
/ 15 октября 2018

Используя perl, вы можете сделать:

perl -nE '/(?<=-Dcatalina\.base=)(\S+).*/ && say $1,"\n",$&' my.log

Это будет применять регулярное выражение к каждой строке файла my.log и печатать, если оно соответствует.

Объяснение:

/                       : regex delimiter
  (?<=                  : positive lookbehind
    -Dcatalina\.base=   : literally
  )                     : end lookbehind
  (\S+)                 : group 1, 1 or more non space
  .*                    : 0 or more any character but newline
/                       : regex delimiter

&&                      : logical and, the following is executed only if the regex matches
say $1,"\n",$&          : print content of group 1, a line break and the whole match

Результат для данного примера:

/apps/kio/jal/current/mi_loki_porf
/apps/kio/jal/current/mi_loki_porf -Dcatalina.home=/apps/kio/jal/current/mi_loki_porf
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...