The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Como concatenar linhas consecutivas shivi707 UNIX desktop para Dummies Perguntas & Respostas 1 01-12-2009 09:08
necessidade de concatenar duas linhas, se a linha doesnt terminar com aspas laxmi131 UNIX & avançada para usuários experientes 9 10-27-2008 07:22
concatenar e exibir 2 linhas como 1 com uma condição para a linha 2? vithala Programação Shell Script e 7 07-11-2008 02:01
Necessidade solução concatenar e exibir 2 linhas como 1 com uma condição para a linha 2? vithala UNIX & avançada para usuários experientes 1 07-10-2008 02:27
Extraindo Logfile Entries harpdl Programação Shell Script e 2 07-13-2006 02:40

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 03-17-2009
BecTech BecTech is offline
Usuário
  
 

Join Date: Mar 2009
Posts: 2
Logfile - extrair algumas linhas para concatenar em 1 linha

Eu tenho um arquivo de log de diagnóstico automático será executado. O arquivo de log é anexado a cada vez que um registo automático seja executado.
Queria apenas puxar algumas linhas de cada run no arquivo de log, e concatenar-los em 1 vírgula delimitada linha (para exportação para Excel ou uma tabela html).

Cada diagnóstico é executado entre colchetes por iniciar e terminar um comentário por isso me sinto capaz de grupo, dessa forma, mas estou tendo problemas para ficar tudo em 1 linha.

Típico de dados:

Diags começar.
Ter. 17 mar 18:07:34 EDT 2009

PASS: (123) Power Check
.
.
[mais informação]
Diags final.
Diags começar.
Ter. 17 mar 19:09:22 EDT 2009

FAIL: (123) Power Check
.
descrição: Tensão grampo
.
. [falta de dados mais detalhes]
.
Diags final.


Quero que a hora, resultado (para o teste 123)


Eu era capaz de usar awk para chegar perto, mas não sou capaz de obtê-lo.

awk '/ Diags começar / (getline; imprimir); (if ($ 2 \u003d\u003d "(123)") print $ 1, $ 2, $ 3, $ 4)'

Isto dá-me:

Mon Mar 16 11:37:07 EDT 2009
PASS: (123) Power Check
Mon Mar 16 12:31:10 EDT 2009
PASS: (123) Power Check
Tue Mar 17 01:30:54 EDT 2009
** FAIL: (123) Power Check
Tue Mar 17 03:08:16 EDT 2009
PASS: (123) Power Check



O que estou tentando é o seguinte:
Mon Mar 16 11:37:07 EDT 2009, PASS: (123) Power Check
Mon Mar 16 12:31:10 EDT 2009, PASS: (123) Power Check
Tue Mar 17 01:30:54 EDT 2009, ** FAIL: (123) Power Check
Tue Mar 17 03:08:16 EDT 2009, PASS: (123) Power Check


Além disso, estou procurando uma maneira de apenas puxar as informações de um determinado prazo (por exemplo, a data atual - 7 dias), mas eu vou preocupar com isso mais tarde .. bebê passos ...

O sistema é Unix (HP-UX) para awk, perl, Ou sed são opções.

Obrigado por qualquer ajuda ..

Paul
  #2 (permalink)  
Old 03-17-2009
daptal daptal is offline
Usuário
  
 

Join Date: Mar 2009
Lugares: 67
#! / usr / bin /perl -w

use strict;

open (FH, 'txt');
my $ fb \u003d 0;
my @ str;
while (my $ linha \u003d <FH>) (
chomp ($ linha);
if ($ linha \u003d ~ m / Diags começar /) (
$ fb \u003d 1;
)
if ($ fb & &! ($ linha \u003d ~ m / Diags começar / | | $ linha \u003d ~ m / Diags final /)) (
push @ str, $ linha;
)
if ($ linha \u003d ~ m / Diags final /) (
my $ x \u003d join "", @ str;
print "$ x \ n";
@ str \u003d ();
$ fb \u003d 0;
)
)

Tente este

Felicidades

Última edição por daptal; em 03/17/2009 11:36.. Motivo: saída
  #3 (permalink)  
Old 03-18-2009
PMM pmm is offline
Usuário
  
 

Join Data: dezembro 2008
Lugares: 50
Na sequência do seu script awk - utilização printf:


Código:
awk '/Diags begin/{getline;printf};{if ($2=="(123)") print ","$1,$2,$3,$4}'

  #4 (permalink)  
Old 03-30-2009
BecTech BecTech is offline
Usuário
  
 

Join Date: Mar 2009
Posts: 2
ok, obrigado pelas boas ideias .. "hacking" e depois de alguns testes eu finalmente tenho a saída em um formato viável usar awk.

I've outputted os resultados para um arquivo ASCII delimitados por vírgula em um formato ..
meu arquivo de saída é chamado tstres.txt
típico e linhas no arquivo parecido com isto:

TSTR01, 29 mar 21:29:17 EDT 2009, PASS:, Power Check
TSTR01, Mar 30 00:54:55 EDT 2009, PASS:, Power Check
TSTR01, Mar 30 08:31:31 EDT 2009, ** FAIL:, Power Check
TSTR02, Mar 07 14:41:08 EST 2009, PASS:, Power Check
TSTR02, Mar 07 21:46:33 EST 2009, PASS:, Power Check

Qual é a forma mais fácil de tomar este arquivo de dados e saída para um html mesa?

Meu plano é ter o script executado em um trabalho do cron e tudo que eu preciso fazer é ver a página html.
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 04:01.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0