[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Converter para ma iúscula os dados de uma unica coluna
From: |
juliocdrm_2004 |
Subject: |
Re: Converter para ma iúscula os dados de uma unica coluna |
Date: |
Thu, 15 Sep 2005 19:06:02 -0000 |
User-agent: |
eGroups-EW/0.82 |
Segue dica recebida na lista sed-br, para solução deste problema,
encaminhada por Fabiano Caixeta Duarte:
awk '{$2=toupper ($2); print} ' arquivo_de_log
[]'s
--- Em address@hidden, "Julio Moreira"
<julio.moreira@p...> escreveu
> Ok... Muito obrigado MESMO pelas dicas !!!
> Vou usá-las no meu dia-a-dia.
>
> Julio Moreira.
>
> On Wed, 14 Sep 2005 16:59:53 -0300, Alexandre de Abreu
<alexandre.abreu@g...> escreveu:
>
> > De: Alexandre de Abreu <alexandre.abreu@g...>
> > Data: Wed, 14 Sep 2005 16:59:53 -0300
> > Para: Julio Moreira <julio.moreira@p...>
> > Assunto: Re: [shell-script] Converter para ma iúscula os dados
de uma unica coluna
> >
> > Julio,
> >
> > Seguem os comentários...
> >
> > On 14/09/05, Julio Moreira <julio.moreira@p...> 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
<alexandre.abreu@g...> escreveu:
> > >
> > > > De: Alexandre de Abreu <alexandre.abreu@g...>
> > > > 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 <fabricio@a...> 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
> >
> >
> > ------------------------------------------------------------------
---
> > 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
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
Re: [shell-script] Converter para maiúscula os dados de uma unica coluna, Rodrigo Monteiro, 2005/09/14