egrep grupo correspondente não está imprimindo?

3

Estou tentando criar um script bash que irá aplicar linhas a um arquivo usando o egrep. Eu criei o regex que deve agrupar as informações que eu quero, o problema é tentar obter a saída. Eu tenho testado com o seguinte comando, mas nada é impresso quando executado. Como faço para imprimir as várias linhas entre o - {80} e desconectado?

egrep -E "^-{80}$\r?\n?([:ascii:]*)Disconnected from Server" testing.txt

Arquivo: testing.txt

Connected to the server: name here

Some header text.
More text to go though...
--------------------------------------------------------------------------------
The information that I want, would be in here;

Including this line as well #$
and this one.

Disconnected from Server...
    
por LF4 03.10.2011 / 18:58

2 respostas

6

Talvez seja melhor usar uma ferramenta como o awk.

awk '/^----+$/ {flag=1;next} /Disconnected from Server/{flag=0} flag {print}'

Veja: link

    
por 03.10.2011 / 19:06
1

Só porque eu finalmente trabalhei aqui está uma versão sed

sed -n '/^-----\+$/,/^Disonnected/ {/^----\+$/d;/^Disonnected/d;p;}' testing.txt

Isto opera em todas as linhas entre / RE1 / e / RE2 /, se a entrada corresponder a / RE1 / ou / RE2 / então é apagada, caso contrário é impresso.

    
por 03.10.2011 / 21:22

Tags