shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: checar valores


From: Miranda
Subject: Re: [shell-script] Re: checar valores
Date: Mon, 31 Jan 2005 13:24:54 -0200
User-agent: KMail/1.6.2

você quer dizer que pode estar faltando algum ?
como em 
00
01
00
01
99

faltando o primeiro dos 99 ?
aí já complicou bastante

Por que você não posta o problema
inicial ? 
Esse seu primeiro passo pode estar complicando
o restante do processo ...



On Monday 31 January 2005 13:04, lferreir1 wrote:
> Oi Miranda, blz?
>
> Testei o seu comando, porém ele se perdeu a partir da linha onde
> realmente nao tinha o 99 (linha 57), e após esta linha, foi
> displayando "Erro na linha..." ( ver abaixo )
>
> >awk -f ./teste1 teste2
>
> Erro na Linha 57
> Erro na Linha 58
> Erro na Linha 59
> Erro na Linha 60
> Erro na Linha 61
> Erro na Linha 62
> Erro na Linha 63
> Erro na Linha 64
> .........
> Erro na Linha 120
> Erro na Linha 121
> Erro na Linha 122
> Erro na Linha 123
> Erro na Linha 124
>
>  Outra coisa que não mencionei nesta dúvida, é o seguinte:
>  O arquivo original que está com problemas tem 6387 registros.
>  Filtrei este aquivo para que o resultado fosse o número da linha,
>  e o dois primeiros campos, sendo que o segundo campo foi filtrado
>  com o uniq.
>
> > cat -n arquivo | cut -c1-9 | uniq -f1
>
>  Sendo assim, o meu script precisa "checar" se no campo 2 está OK
>  e se não estiver, "pego" o número da linha ($1 ) onde está faltando
>  o próximo número e asim vai, até tratar todos os registros para
> netão enviar um e-mail para o responsável acertar o arquivo original.
>
>  Expliquei ou compliquei??
>
>  Agradeço,
> Luiz
>
>
> --- Em address@hidden, Miranda <miranda@m...>
> escreveu
>
> > Veja se é isso :
> > [miranda@guitar miranda]$ cat /tmp/Dy
> > 00
> > 01
> > 99
> > 00
> > 02
> > 99
> > 00
> > 01
> > 99
> > 00
> > 01
> > 98
> > 00
> > 01
> > 99
> > 01
> > 01
> > 99
> > 00
> > 01
> > 99
> > [miranda@guitar miranda]$ cat /tmp/x.awk
> > $1 != (NR-1)%3 && (NR - 1)%3 != 2 {printf"Erro na Linha %d\n",NR }
> > $1 != 99 && (NR - 1)%3 == 2 {printf"Erro na Linha %d\n",NR }
> > [miranda@guitar miranda]$
> >
> > [miranda@guitar miranda]$ awk -f /tmp/x.awk /tmp/Dy
> > Erro na Linha 5
> > Erro na Linha 12
> > Erro na Linha 16
> >
> > no arquivo de comandos do awk , x.awk temos
> > (NR - 1) é o numero da linha quando contada a partir de zero
> > (NR - 1)%3  é o resto da divisão por 3
> >
> > On Monday 31 January 2005 10:17, lferreir1 wrote:
> > > Salve colegas!
> > >
> > > Tenho um arquivo texto com os seguintes conteúdos:
> > > 00
> > > 01
> > > 99
> > > 00
> > > 01
> > > 99
> > > ..
> > > ..
> > > 00
> > > 01
> > > 99
> > >
> > > Como podem perceber, existe uma lógica sequencial, onde
> > > obrigatoriamente
> > > o primeiro registro tem que ser 00, o segundo 01, o terceiro é 99,
> > > e começa novamente com 00, depois 01 ....
> > >
> > > Como faço para checar se este sequencial está certo?
> > > Se tiver algum registro errado, tem que me dar uma mensagem, porém
> > > continuar com a checagem.
> > >
> > > Adianto que o arquivo original foi filtrado pelo seguinte comando:
> > > # cat -n arquivo | cut -c1-9 | uniq -f1
> > >
> > > E o valor da variavel do campo dois foi pelo awk $2,
> > > portanto eu tenho tb o valor da linha em questão.
> > >
> > > Grato,
> > > Luiz
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > ------------------------------------------------------------------
>
> ---
>
> > > Esta lista não admite a abordagem de outras liguagens de
>
> programação, como
>
> > > perl, C etc. Quem insistir em não seguir esta regra será moderado
>
> sem
>
> > > prévio aviso.
> > > ------------------------------------------------------------------
>
> --- Sair
>
> > > da lista: address@hidden
> > > ------------------------------------------------------------------
>
> ---
>
> > > Esta lista é moderada de acordo com o previsto em
> > > http://www.listas-discussao.cjb.net
> > > ------------------------------------------------------------------
>
> ---
>
> > > Links do Yahoo! Grupos
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio aviso.
> --------------------------------------------------------------------- Sair
> da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>
> Links do Yahoo! Grupos
>
>
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]