Como filtrar a saída do terminal wvdial / pppd

1

Eu uso o wvdial para conectar-me à rede com o meu modem USB. Funciona corretamente e estou muito feliz com isso. Quando eu inicio no XFCE eu tenho que configurá-lo para saída para um terminal transparente e sem borda para que o status seja exibido na minha área de trabalho, a vida é boa. Tudo é ótimo, eu só quero ajustá-lo.

Espero filtrar a saída com um 'grep -v' para remover informações indesejáveis. Aqui está a saída de uma execução de amostra. A saída é consistentemente a mesma, exceto para endereços IP.

--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATDT#777
--> Waiting for carrier.
ATDT#777
CONNECT
--> Carrier detected.  Waiting for prompt.
~[7f]}#@!}!}!} }9}"}&} } } } }#}%B#}%}%}&3za[02]}'}"}(}"J};~
--> PPP negotiation detected.
--> Starting pppd at Mon Nov 14 11:00:06 2011
--> Warning: Could not modify /etc/ppp/pap-secrets: Permission denied
--> --> PAP (Password Authentication Protocol) may be flaky.
--> Warning: Could not modify /etc/ppp/chap-secrets: Permission denied
--> --> CHAP (Challenge Handshake) may be flaky.
--> Pid of pppd: 17776
--> Using interface ppp0
--> pppd: >[7f]
--> pppd: >[7f]
--> pppd: >[7f]
--> pppd: >[7f]
--> local  IP address 10.81.25.50
--> pppd: >[7f]
--> remote IP address 10.133.28.10
--> pppd: >[7f]
--> primary   DNS address 10.133.20.11
--> pppd: >[7f]
--> secondary DNS address 10.132.20.11
--> pppd: >[7f]
^CCaught signal 2:  Attempting to exit gracefully...
--> Terminating on signal 15
--> pppd: >[7f]
--> Connect time 0.2 minutes.
--> pppd: >[7f]
--> pppd: >[7f]
--> Disconnecting at Mon Nov 14 11:00:16 2011

Alguém por favor pode me ajudar com uma linha de comando ou script que filtre essa saída e remova as linhas --> pppd: >[7f] , e possivelmente os avisos pap / chap (eles são falsos).

Eu tentei várias coisas, com pipes e redirecionamento para o grep, mas não acertei nada que parecesse afetar a saída. Como nota: nas linhas pppd: / [7f] aparece o segundo '>' personagem pode ser praticamente qualquer coisa (ainda não sei o que o pppd está tentando me dizer):)

Obrigado!

EDITAR: Deixa comigo. Coisas simples, na verdade, se você não é um botão. Eu sou um botão ..

wvdial 2 > & 1 | grep -v -i -E "7f] | pap | chap"

a saída está em stderr e os pipes são para stdout. o 2 > & 1 redireciona para que ele seja canalizado corretamente.

Se você leu até aqui, obrigado.

    
por BentFX 14.11.2011 / 20:36

1 resposta

2

O que eu faria é redirecionar a saída de wvdial para um arquivo e, separadamente, imprimir linhas "interessantes" do arquivo conforme elas aparecem.

wvdial >wvdial.log 2>&1

Aqui está uma maneira de filtrar o arquivo. tail -n +1 -f significa seguir o arquivo conforme ele cresce ( -f ), começando com a primeira linha ( -n +1 ). O filtro grep -v significa exibir todos, menos a linha correspondente; -E escolhe a sintaxe "moderna" para expressões regulares.

tail -n +1 -f wvdial.log |
grep -vE '^--> (pppd: >\[7f\]|Warning)$'

Existem vários programas que combinam o recurso de monitoração de arquivo de tail -f (que geralmente é chamado de rejeitar um arquivo) com recursos de filtragem e coloração; navegue na tag tail neste site e veja em particular grep e tail -f? e Como ter o tail -f mostrar a saída colorida .

    
por 15.11.2011 / 01:39