[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
Re: [shell-script] Converter para maiúscula os dados de uma unica coluna, Rodrigo Monteiro, 2005/09/14