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

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

Re: [shell-script] Converter para ma iúscula os dados de uma unica colun


From: Alexandre de Abreu
Subject: Re: [shell-script] Converter para ma iúscula os dados de uma unica coluna
Date: Wed, 14 Sep 2005 16:59:53 -0300

Julio,

Seguem os comentários...

On 14/09/05, Julio Moreira <address@hidden> wrote:
> Alexandre:
> 
> Fiz uma pequena modificacao no seu script e funcionou 100%. Muito obrigado 
> pela sua ajuda e pelas explicacoes.
> Veja o script modificado:
> 
> sed  -e 's|\([_[:upper:]]\{1,\}\) \([[:alnum:]]\{1,\}\) \(.*\)|\1 \U\2 \E\3|' 
> texto
> 
> No último grupo, troquei o \(www.*\) por \(.*\).
> 
> Se nao for abusar muito, você poderia me explicar por que a sintaxe abaixo 
> não funcionou ?
> 
> sed -e's|\(.*\) \(.*\) \(.*$\)|\1 \U\2 \E\3|' texto

O primeiro grupo entre parênteses engloba mais do que o que vc quer
por causa do ".*" que significa qualquer coisa nenhuma ou mais vezes,
verifica-se isso quando retiramos o "\1".

Ao utilizar regex atente pra isso, tente especificar somente o
necessário não importa se a regex ficar maior. Por isso utilizei o
"[_[:upper:]]{1,}" que significa o caracter underline/underscore "_"
e/ou caracteres maiúsculos "[:upper:]" uma ou mais vezes.

No seu exemplo, vc pode simplesmente trocar o ".*" por "\S" que
signfica "non-space chars", mas, mesmo assim continua sendo uma
implementação "perigosa". :)

[]s

> On Wed, 14 Sep 2005 15:33:56 -0300, Alexandre de Abreu <address@hidden> 
> escreveu:
> 
> > De: Alexandre de Abreu <address@hidden>
> > Data: Wed, 14 Sep 2005 15:33:56 -0300
> > Para: address@hidden
> > Assunto: Re: [shell-script] Converter para ma iúscula os dados de uma unica 
> > coluna
> >
> > Olá Julio,
> >
> > Segue o comando utilizando sed:
> >
> > sed  -i 's|\([_[:upper:]]\{1,\}\) \([[:alnum:]]\{1,\}\) \(www.*\)|\1
> > \U\2 \E\3|' texto
> >
> > Explicando:
> >
> > - A regex faz o match das linhas do arquivo 'texto'
> > - Existem 3 'grupos' separados por parênteses que na substituição são
> > referenciados como \1 \2 e \3
> > - \{1,\} significa uma ou mais ocorrências
> > - \U ativa a formatação maiúscula o \E é o 'end'
> > - O parâmetro "-i" do sed altera diretamente no arquivo
> >
> > Espero ter ajudado.
> >
> > []s
> >
> > Alexandre de Abreu
> >
> > On 14/09/05, Fabricio Lopes de Souza <address@hidden> wrote:
> > >  [fabricio@localhost ~]$ cat texto
> > >  USER_SITE_RCODE cultura01 www.msn2go.com:8888 200 28
> > >  USER_SITE_RCODE Jose www.msn2go.com:8888 204 15
> > >  USER_SITE_RCODE Joaquim www.orlandofacioli.com.br 200 2
> > >  USER_SITE_RCODE Antonio www.passportimages.com 200 1
> > >  USER_SITE_RCODE Joao www.passportimages.com 304 3
> > >  [fabricio@localhost ~]$ cat texto | awk '{print $1, toupper($2) , $3 ,$4
> > >  , $5}'
> > >  USER_SITE_RCODE CULTURA01 www.msn2go.com:8888 200 28
> > >  USER_SITE_RCODE JOSE www.msn2go.com:8888 204 15
> > >  USER_SITE_RCODE JOAQUIM www.orlandofacioli.com.br 200 2
> > >  USER_SITE_RCODE ANTONIO www.passportimages.com 200 1
> > >  USER_SITE_RCODE JOAO www.passportimages.com 304 3
> > >
> > >  awk eh lindu :)
> > >  nao sbia como fazer , dei um man awk e aprendi . =D
> > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > >  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
> > > ---------------------------------------------------------------------
> > >
> > >
> > >
> > >
> > >  Yahoo! Grupos, um serviço oferecido por:
> > >
> > > PUBLICIDADE
> > >
> > >  ________________________________
> > >  Links do Yahoo! Grupos
> > >
> > >
> > > Para visitar o site do seu grupo na web, acesse:
> > > http://br.groups.yahoo.com/group/shell-script/
> > >
> > > Para sair deste grupo, envie um e-mail para:
> > > address@hidden
> > >
> > > O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do
> > > Yahoo!.
> >
> >
> > --
> > Alexandre de Abreu, GCUX, RHCE
> >
> >
> > ---------------------------------------------------------------------
> > 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
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> 


-- 
Alexandre de Abreu, GCUX, RHCE


reply via email to

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