AIX - usando egrep para correspondência de padrões de várias cadeias incluindo variáveis

1

Estou tentando criar um comando egrep que pode fazer o padrão corresponder a um conjunto de strings e variáveis. Até agora, estou usando o seguinte:

ps -ef <uid> | egrep "string1|string2" | egrep -v "string4|string5" | grep -v "${variable}"

Isso funciona, mas estou tentando ter uma sintaxe uniforme e eficiente.

Eu consegui o seguinte comando funcionar no Linux, mas não no AIX:

ps -ef <uid> | egrep "string1|string2" | grep -v "${variable}\|string4\|string5" 

Eu passei pelas man pages e tentei egrep -c e tal, mas não consegui fazer qualquer combinação funcionar.

    
por Jay 07.11.2017 / 17:43

1 resposta

1

Você está misturando os comandos grep e egrep juntos e descartou o sinalizador -E exigido para o grep, de modo que ele analisa | como a expressão regular de alternância. Como alternativa, use o egrep até o final.

Use um destes:

ps -ef | egrep "string1|string2" | egrep -v "${variable}|string4|string5"

ou

ps -ef | egrep "string1|string2" | grep -Ev "${variable}|string4|string5"

... sendo cuidadoso em qualquer um para escapar de tokens de expressão regular em variable (ou as várias cadeias de caracteresN, para esse assunto).

Veja também: Por que minha expressão regular funciona em X, mas não em Y?

    
por 07.11.2017 / 18:07