[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]
- Contar número de campos de uma linha, Mauricy Maiorino, 2011/08/10
- Re: [shell-script] Contar número de campos de uma linha, Tiago Peczenyj, 2011/08/10
- Re: [shell-script] Contar número de campos de uma linha, Fabricio Mattos, 2011/08/10
- Re: [shell-script] Contar número de campos de uma linha, Tiago Peczenyj, 2011/08/10
- Re: [shell-script] Contar número de campos de uma linha, Fabricio Mattos, 2011/08/10
- Re: [shell-script] Contar número de campos de uma linha, Valtoir, 2011/08/10
- Re: [shell-script] Contar número de campos de uma linha,
Rodrigo Boechat <=
- Re: [shell-script] Contar número de campos de uma linha, Tiago Peczenyj, 2011/08/10
- Re: [shell-script] Contar número de campos de uma linha, Rodrigo Boechat, 2011/08/10
- Re: [shell-script] Contar número de campos de uma linha, Robson Alexandre, 2011/08/14
- Re: [shell-script] Contar número de campos de uma linha, Rodrigo Boechat, 2011/08/14