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

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

Re: [shell-script] Re: contagem de caracteres


From: Fabiano Caixeta Duarte
Subject: Re: [shell-script] Re: contagem de caracteres
Date: Fri, 18 Jan 2008 01:04:26 -0200

Em 17/01/08, Julio C. Neves <address@hidden> escreveu:
>
> Fala Fabiano,
> isso foi a primeira coisa que me ocorreu, porém tenho 90% de certeza que
> este brace expansion (${...}) não funciona no ksh da Sun (Sw Proprietário
> é
> muito ruim) :)
>
> Abração,
> Julio
>
> Em 17/01/08, Fabiano Caixeta Duarte <address@hidden> escreveu:
> >
> >   --- Em address@hidden
> <shell-script%40yahoogrupos.com.br>,
> > "Julio C. Neves"
> > <julio.neves@...> escreveu
> > >
> > > Dei a solução baseado no exemplo. Para o novo caso que vc criou, basta
> > > acrescentar o sublinha no tr. Assim:
> > >
> > > Prompt> expr length `echo
> > > "ddmmyy,hhmmss,nome_do_arquvio,tipo,,,,,versao,,,,," | tr -d
> [:alnum:]_`
> > > 13
> > >
> > > E está restabelecida a paz... :)
> > > Julio
> > >
> > >
> > > Em 17/01/08, miranda <miranda@...> escreveu:
> > > >
> > > > bem sacado mas vai falhar em alguns casos :
> > > > exemplo
> > > > expr length `echo
> > "ddmmyy,hhmmss,nome_do_arquvio,tipo,,,,,versao,,,,," |
> > > > tr -d [:alnum:]`
> > > > 15
> > > > On Thu, 2008-01-17 at 11:03 -0200, Julio C. Neves wrote:
> > > > > Prompt> expr length `echo
> > > > > "ddmmyy,hhmmss,nomearquvio,tipo,,,,,versao,,,,," |
> > > > > tr -d [:alnum:]`
> > > > > 13
> > > > >
> > > > > Em 17/01/08, Elvio Barbalho <elvio.barbalho@...> escreveu:
> > > > > >
> > > > > > Senhores bom!!!!!
> > > > > >
> > > > > > estou precisando contar quantas virgulas tenho em determinada
> > linha.
> > > > > as
> > > > > > virgulas são o delimitadores de campos dentro de um arquivo.
> > > > > >
> > > > > > Ex de uma linha:
> > > > > >
> > > > > > ddmmyy,hhmmss,nomearquvio,tipo,,,,,versao,,,,,
> > > > > >
> > > > > > como podemos ver existem campos que nao nenhuma informação.
> > > > > >
> > > > > > tentei algo do tipo:
> > > > > >
> > > > > > :>echo ddmmyy,hhmmss,nomearquvio,tipo,,,,,versao,,,,, | wc -w
> > > > > > 1
> > > > > >
> > > > > > :>OFS=','
> > > > > >
> > > > > > :>echo $OFS
> > > > > > ,
> > > > > >
> > > > > > :>echo ddmmyy,hhmmss,nomearquvio,tipo,,,,,versao,,,,, | wc -w
> > > > > > 1
> > > > > >
> > > > > > Mais não deu certo.
> > > > > >
> > > > > > Lembrando que estou usando o Ksh(Solaris) e muitas das
> facilidades
> > > > > do Bash
> > > > > > não tenho disponível.
> >
> > Gente,
> >
> > O rapaz não quer só as vírgulas? Então é só retirar todo o resto ;)
> >
> > expr length
> > $(temp="ddmmyy,hhmmss,nome_do_arquivo,tipo,,,,,versao,,,,,"; echo
> > ${temp//[^,]/})
> >
> > Tá feito!
> >
> > Fabiano.
> >
> --
> Abraços,
> Julio
>

De fato não havia me atentado a este importante detalhe.

Testando no ksh do linux (ksh --version: version sh (AT&T Labs Research)
1993-12-28 o+)
ele até cuidou direitinho do $() e do ${///}, mas se atrapalhou com a er
[^,].


-- 
Fabiano Caixeta Duarte
Especialista em Redes de Computadores
Linux User #195299
Ribeirão Preto - SP


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



reply via email to

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