Essa, provavelmente, não é a melhor forma de fazer isso, mas funciona: $ grep -B 9 '<status>' <nome_do_arquivo_de_log> |tr -d '\t '|paste -s -d'\t'|sed 's/\t--\t/\n/g' | \ cut -f 1,2,7,10 | sed 's/<[^>]\+>//g'
Set MHLRSUB 20080903235942.784165 SUCCESSFUL Login CAI 20080903235943.392448 SUCCESSFUL CAI 20080903235943.463563 FAILED []s, -- Bruno Coimbra [EMAIL PROTECTED] Slackware: Simplicity is Divine! On Thursday 11 September 2008 22:46:12 leo_caranguejeira wrote: > Olá Pessoal, > > Estou me matando na solução de uma pesquisa com grep já faz um tempo. > Gostaria de uma ajudinha, e desde já agradeço aos grandes > conhecedores de sheell desta lista. > > > Tenho um arquivo com o formato abaixo, de 1 G, o que eu preciso é > grepar a linha "<status>" com o o resultado Resp:0 e pegar também as > linhas "<operation>, <target> e <starttime> acima do status, o grep > destas linhas forma um único comando. > Resumindo, o grep do "<status>" mais as linhas acima forma um único > comando, quero contar a quantidade de comandos com "<status>" Resp:0 > que estão aparecendo para cada comando. > > Bem, agradeço se alguém pode me ajudar. > > <log logid="82a9678d190809032359420284"> > <category>Upstream.CAI</category> > <operation>Set</operation> > <target>MHLRSUB</target> > <instance>hlrSub.msisdn=551112345678</instance> > <user>opsc_2</user> > <context>sog.Oper_Create</context> > <fullOperation>SET:HLRSUB:MSISDN,551112345678:CAMEL,SET,OCTDP,2,SK,2,C > CH,2:CAMEL,SET,TCTDP,12,SK,4,CCH,2;</fullOperation> > <starttime>20080903235942.784165</starttime> > <stoptime>20080903235943.379073</stoptime> > <fullResult>RESP:0;</fullResult> > <status>SUCCESSFUL</status> > </log> > <log logid="82a9678d190809032359430288"> > <category>Upstream.CAI</category> > <operation>Login</operation> > <target>CAI</target> > <instance></instance> > <user>opsc_2</user> > <context>sog.Oper_Create</context> > <fullOperation>LOGIN:opsc_2:**********;</fullOperation> > <starttime>20080903235943.392448</starttime> > <stoptime>20080903235943.392662</stoptime> > <fullResult>RESP:5000;</fullResult> > <status>SUCCESSFUL</status> > </log> > <log logid="82a9678d190809032359430289"> > <category>Upstream.CAI</category> > <operation></operation> > <target>CAI</target> > <instance></instance> > <user>opsc_2</user> > <context>sog.Oper_Create</context> > <fullOperation>;</fullOperation> > <starttime>20080903235943.463563</starttime> > <stoptime>20080903235943.463855</stoptime> > <fullResult>RESP:3001;Syntax Error;</fullResult> > <status>FAILED</status> > </log>