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
Número de linhas em um arquivo (Perl) jisha Programação Shell Script e 5 05-20-2008 08:11
Script para Scan proclog arquivos deeprajn95 Programação Shell Script e 3 05-12-2008 07:25
Perl: Voltando de referência s modificador cooldude Programação Shell Script e 8 03-19-2008 09:49
Perl para fazer a varredura através de arquivos gholdbhurg Programação Shell Script e 1 03-05-2008 10:53
Como digitalizar apenas novas linhas adicionadas no arquivo? redlotus72 UNIX para Dummies Perguntas & Respostas 3 04-28-2005 04:34

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-18-2008
gholdbhurg gholdbhurg is offline
Usuário
  
 

Join Date: Oct 2007
Lugares: 26
Perl para fazer a varredura de volta linhas

Oi Perl gurus,
Eu tenho esse arquivo para fazer a varredura através. Amostra linhas abaixo:

2008031A, USERNAME, 12345, dar ABC, tomar XYZ, operação apresentado
2008031B, USERNAME, 12.346, à espera de tratamento
2008031C, USERNAME, 12347, Recuperando resposta
2008031D, USERNAME, 12348, o que não é um tratamento válido
2008031E, USERNAME, 12349, Membro não
2008031F, USERNAME, 12350, Sistema \u003d 0
2008031G, USERNAME, 12.351, à espera de novas txns
2008031H, alguém, 12352, dar STE, tomar GVO, operação apresentado
2008031I, alguém, 12.353, à espera de tratamento
2008031J, alguém, 12354, Recuperando resposta
2008031K, alguém, 12355, o que não é um tratamento válido
2008031L, alguém, 12356, Membro não
2008031M, ALGUÉM, 12357, Sistema \u003d 0
2008031N, alguém, 12.358, à espera de novas txns

Eu preciso de pesquisa para este padrão
->
"Este não é um tratamento válido"
Quando uma linha encontrada uma correspondência, que deve escrever no diário da <UserName> bem como dar e receber o valor (ou seja, ABC, XYZ)

Após a varredura acima arquivo, registro de erro deve aparecer:
ERRO: NOMEDOUSUÁRIO (ABC, XYZ)
ERRO: ALGUÉM (STE, GVO)

Qualquer idéias?

Thanks in advance caras.
  #2 (permalink)  
Old 03-18-2008
era
Convidado
  
 

Posts: n / a
Bits: 0 [Bancária]
Operações podem ser misturadas no arquivo de log, ou vão todos os detalhes de uma operação seja em linhas adjacentes, e todas as linhas adjacentes pertencem a uma mesma operação, ou marcar a fronteira para a próxima operação?

Será que uma transação iniciar sempre com a "dar" e "ter" coisas? Será uma operação terminar sempre com o "À espera de novas txns" linha?

Código:
vnix$ perl -ne 'if (/give ([^,]*), take ([^,]*), transaction submitted/) { $give = $1; $take = $2; }
    if (/Waiting for new txns/) { $give = $take = undef; }
    if (/, ([^,]*), [^,]*, This is not a valid/) { print "UPPERCASE: $1 ($give, $take)\n"}' /tmp/txn 
UPPERCASE: USERNAME (ABC, XYZ)
UPPERCASE: SOMEONE (STE, GVO)
Acho que todas as letras maiúsculas é uma indicação de que este é o sector financeiro que estamos a tratar aqui ...?
  #3 (permalink)  
Old 03-18-2008
jim McNAMARA jim mcnamara is online now Forum Staff  
...@...
  
 

Join Date: Feb 2004
Localização: NM
Mensagens: 5.769
Considerar e awk versão:
Código:
csadev:/home/jmcnama> cat t.awk   
awk -F, 'BEGIN { give=""}
         {
            if($4 ~ /give/){
                  give=sprintf("%s%,%s" ,
                        substr($4, length($4)-3),
                        substr($5, length($5)-3 ) )
                  }
            if($4 ~ /This is not a valid dealing/) {
                printf("ERROR: %s (%s)\n", $2, give)
                }
         } ' filename

csadev:/home/jmcnama> cat filename
2008031A, USERNAME, 12345, give ABC, take XYZ, transaction submitted
2008031B, USERNAME, 12346, waiting for processing
2008031C, USERNAME, 12347, Retrieving response
2008031D, USERNAME, 12348, This is not a valid dealing
2008031E, USERNAME, 12349, State has failed
2008031F, USERNAME, 12350, System=0
2008031G, USERNAME, 12351, Waiting for new txns
2008031H, SOMEONE, 12352, give STE, take GVO, transaction submitted
2008031I, SOMEONE, 12353, waiting for processing
2008031J, SOMEONE, 12354, Retrieving response
2008031K, SOMEONE, 12355, This is not a valid dealing
2008031L, SOMEONE, 12356, State has failed
2008031M, SOMEONE, 12357, System=0
2008031N, SOMEONE, 12358, Waiting for new txns

csadev:/home/jmcnama> t.awk
ERROR:  USERNAME ( ABC, XYZ)
ERROR:  SOMEONE ( STE, GVO)
  #4 (permalink)  
Old 03-18-2008
gholdbhurg gholdbhurg is offline
Usuário
  
 

Join Date: Oct 2007
Lugares: 26
Oi época / Jim,
Obrigado pela rápida resposta.

>>>
Oi era,
Minhas respostas abaixo:
1. Operações podem ser misturadas no arquivo de log, ou vão todos os detalhes de uma operação seja em linhas adjacentes, e todas as linhas adjacentes pertencem a uma mesma operação, ou marcar a fronteira para a próxima operação?
ANS:
Sim, todos os detalhes de uma operação será em linhas adjacentes, e todas as linhas adjacentes pertencem ao mesmo usuário / transação.

2. Será que uma transação iniciar sempre com a "dar" e "ter" coisas? Será uma operação terminar sempre com o "À espera de novas txns" linha?
ANS:
Sim que será sempre o início da linha txns todos, mas as linhas finais podem variar.
Para mais bem sucedida, não vai ser qualquer "Este não é um tratamento válido" linha no meio.
>>>

Btw, se possível, eu preferiria que este em perl

Esperamos ouvir dos outros gurus.
Agradeço muito.

Última edição por gholdbhurg; em 03/18/2008 12:41..
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 05:34.


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