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

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

Re: [shell-script] Contar número de campos de uma linha


From: Rodrigo Boechat
Subject: Re: [shell-script] Contar número de campos de uma linha
Date: Wed, 10 Aug 2011 13:07:01 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20110627 Thunderbird/5.0

Eu vi outro tipo de solução possível para sua questão.
Considerei que os campos que você citou possuem quantidade de caracteres 
definida.
10*8*8*10*....
Como é o quarto campo que importa, segundo seu relato, fiz uma expressão 
simples de ser entendida.
^[0-9]{10}\*[0-9]{8}\*[0-9]{8}\*([0-9]{10}|\*)
Basicamente é só você testar quais as linhas que não se enquadram nessa 
expressão com egrep e inserir os campos vazios.

Espero ter ajudado.

Rodrigo Boechat

Em 10-08-2011 11:29, Valtoir escreveu:
>
> Adaptado de um exemplo do MrBits, na lista:
>
> cat arquivo | while read linha; do IFS="*"; set - $linha; echo $#; done
>
> Valtoir
>
> Em 10 de agosto de 2011 10:55, Fabricio Mattos <address@hidden 
> <mailto:fabrimatt%40gmail.com>> escreveu:
> > Realmente, entendi que ele queria contar os caracteres
> >
> >
> >
> >
> > Em 10 de agosto de 2011 10:40, Tiago Peczenyj
> > <address@hidden <mailto:tiago.peczenyj%40gmail.com>>escreveu:
> >
> >> **
> >>
> >>
> >> fabricio, dessa forma vc calcularia o numero de caracteres e não de
> >> campos separador pelo caracter *
> >>
> >> 2011/8/10 Fabricio Mattos <address@hidden 
> <mailto:fabrimatt%40gmail.com>>:
> >>
> >> > wc -c nome_do_ARQUIVO
> >> >
> >> > Em 10 de agosto de 2011 10:16, Mauricy Maiorino
> >> > <address@hidden 
> <mailto:mauricym%40ccuec.unicamp.br>>escreveu:
> >> >
> >> >> **
> >> >>
> >> >>
> >> >> Pessoal
> >> >>
> >> >> Preciso "contar" o número de campos de uma linha de um arquivo no
> >> formato:
> >> >>
> >> >> 1996062519*20110530*08312100*1996062515*0,70*0,00*CHAMADA
> >> >> LOCAL*UTILIZAÇÃO ACIMA DO CONTRATADO
> >> >> 1996062519*20110602*09402000*1996062528*7,80*0,00*CHAMADA
> >> >> LOCAL*UTILIZAÇÃO ACIMA DO CONTRATADO
> >> >> 1996062519*20110602*10291200*1996062510*16,50*0,00*CHAMADA
> >> >> LOCAL*UTILIZAÇÃO ACIMA DO CONTRATADO
> >> >> 1996062519*20110515*18024600*1996062511*1,00*0,21*TORPEDO VIVO
> >> >> FLEXIVE*UTILIZAÇÃO ACIMA DO CONTRATADO
> >> >> 1996062519*20110507*10470400**1,00*2,21*SINCRONISMO 
> INICIAL*UTILIZAÇÃO
> >> >> ACIMA DO CONTRATADO
> >> >> 1996062519*20110523*11443600**1,00*0,36*ATUALIZACAO 
> AGENDA*UTILIZAÇÃO
> >> >> ACIMA DO CONTRATADO
> >> >>
> >> >> o arquivo "tem" que conter 8 campos por linha. Preciso que o 
> numero de
> >> >> campos seja retornado para que quando a linha contiver, no caso, 
> menos
> >> >> que 8 campos ele execute determinada ação(incluir um campo em branco
> >> >> após o terceiro campo). Os campos são separados por *.
> >> >>
> >> >> Não sei como pegar este valor!!
> >> >>
> >> >> Obrigado
> >> >>
> >> >> Mauricy
> >> >>
> >> >>
> >> >>
> >> >
> >> >
> >> > [As partes desta mensagem que não continham texto foram removidas]
> >> >
> >> >
> >> >
> >> > ------------------------------------
> >> >
> >> > ----------------------------------------------------------
> >> > 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 
> <mailto:shell-script-unsubscribe%40yahoogrupos.com.br>
> >> > ----------------------------------------------------------
> >> > Esta lista é moderada de acordo com o previsto em
> >> http://www.listas-discussao.cjb.net
> >> > ----------------------------------------------------------
> >> > Servidor Newsgroup da lista: news.gmane.org
> >> > Grupo: gmane.org.user-groups.programming.shell.brazil
> >> >
> >> > Links do Yahoo! Grupos
> >>
> >> >
> >> >
> >> >
> >>
> >> --
> >> Tiago B. Peczenyj
> >> Linux User #405772
> >>
> >> http://pacman.blog.br
> >>
> >>
> >>
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> > ------------------------------------
> >
> > ----------------------------------------------------------
> > 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 
> <mailto:shell-script-unsubscribe%40yahoogrupos.com.br>
> > ----------------------------------------------------------
> > Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> > ----------------------------------------------------------
> > Servidor Newsgroup da lista: news.gmane.org
> > Grupo: gmane.org.user-groups.programming.shell.brazil
> >
> > Links do Yahoo! Grupos
> >
> >
> >
>
> 


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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