Используя grep с regex

У меня есть regex, который хорошо работает для меня. Я проверил его на следующем сайте: https://www.regex101.com/

(?<=.log:)[^;]*

К сожалению, это не работает больше, когда я пытаюсь использовать его с grep. Я пытаюсь сделать следующую вещь:

cat foo.log | grep -E '(?<=.log:)[^;]*'

Я знаю, что существуют соответствия, потому что я создал и протестировал свой regex после этого шаблона. Также-E параметрический усилитель работал потому что regex *.* хорошо работавший.

Взгляд в конфигурацию:

201407010300.log:2014-07-01 03:00;10.112.64.250;2;1145439;ULC IBM
201407010100.log:2014-07-01 01:00;10.112.64.250;2;1145216;ULC IBM
201407010100.log:2014-07-01 01:00;10.112.64.250;3;968549;ULC Primeline

У Вас есть какие-либо предложения, почему это не работает?

1
задан 19 December 2014 в 06:30

1 ответ

Lookaheads и lookbehinds не являются частью синтаксиса Extended Regular Expression (ERE). Вам нужны Perl-совместимые регулярные выражения (PCRE), используя опцию -P.

5
ответ дан 10 November 2019 в 08:22

Другие вопросы по тегам:

Похожие вопросы: