Usando grep com regex

1

Eu tenho um regex que funciona bem para mim. Eu verifiquei no seguinte site: link

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

Infelizmente, não funciona mais quando tento usá-lo com o grep. Eu tento fazer o seguinte:

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

Eu sei que existem correspondências porque criei e testei meu regex depois desse padrão. Além disso, o parâmetro -E funcionou porque o regex *.* funcionou bem.

Uma olhada na configuração:

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

Você tem alguma sugestão de por que isso não funciona?

    
por BoJack Horseman 19.12.2014 / 14:22

1 resposta

5

Lookaheads e lookbehinds não fazem parte da sintaxe Extended Regular Expression (ERE). Você precisa de expressões regulares compatíveis com Perl (PCRE) usando a opção -P .

    
por muru 19.12.2014 / 14:30