GREP - Extraindo informações de uma determinada linha em um arquivo

1. GREP - Extraindo informações de uma determinada linha em um arquivo

Rodrigo Rosa
rodrigorosa

(usa CentOS)

Enviado em 21/08/2015 - 15:49h

Boa tarde pessoal!

Sou novo por aqui, meu primeiro post na verdade. Estou com uma dificuldade e gostaria do auxílio da comunidade se possível.

Estou tentado retirar informações relevantes de linhas de um arquivo de log por meio do comando grep e algumas expressões regulares. Cheguei a um resultado que não é o ideal. Abaixo segue o que estou tentando fazer:

COMANDO GREP PARA PEGAR APENAS AS LINHAS DE LOG QUE CONTENHAM A PALAVRA: 'INVALIDA'

$ grep -F INVALIDA log_2015-06-30.txt 


Resultado: (colei apenas uma linha para facilitar a visualização)
2015-06-30 23:58:03,792 INFO handler.ProtocolHandler.MESSAGE -> /10.22.8.26:20792 6144793 <Request><cop>122</cop><cli>000000000115240</cli><codRep>59</codRep><msg>CONTA INVALIDA </msg><op>OPERADORA</op><nr>0</nr><nru>002298</nru><term>38845030</term></Request>

Tentei executar o seguinte comando para extrair para um novo arquivo com as seguintes informações Data hora, cli, msg e op, ou seja, algo parecido com isso:
2015-06-30 23:58:03,792<cli>000000000115240</cli><msg>CONTA INVALIDA </msg><op>OPERADORA</op>

Executei isso, mas não fui muito feliz
$ grep -F INVALIDA log_2015-06-30.txt | grep -E -o "(.*INFO)|<cli>.*</cli><msg>.*</msg><op>.*</op>" 


pois retornou a informação quebrada em duas linhas:
2015-06-30 23:58:03,792 INFO
<cli>000000000115240</cli><msg>CONTA INVALIDA </msg><op>OPERADORA</op>


Desde já agradeço o apoio.


  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts