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

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

Re: [shell-script] Expressão regular com o sed


From: Adonai Silveira Canez
Subject: Re: [shell-script] Expressão regular com o sed
Date: Mon, 5 Mar 2012 14:20:48 -0300

Rodrigo, ainda não saiu do jeito que eu estou precisando, olha só o que eu
preciso: aquela segunda coluna, tem linhas com os nomes escritos totalmente
em maisculas e outros nomes escritos em maiusculas e minusculas, eu preciso
que a expressão regular selecione apenas as linhas que estão apenas em
maiusculas e alem disso as que estão em maiscula e que tenha mais de 3
caracteres na palavra inicial, a expressão que você fez, pelo resultado que
ela me forneceu, ela esta convertendo todos os nomes para maiusculo e não
selecionando aquelas que estão em maiusculo:

Exemplo de linhas que devem aparecer no resultado
daniel.souza;DANIEL EDILSON DE SOUZA;Daniel Edilson de Souza
regiane.fernandes;REGIANE DOMINGUES FERNANDES;Regiane Domingues Fernandes
leandro.novy;LEANDRO AUGUSTO SILVA NOVY;Leandro Augusto Silva Novy
emerson.bustamante;EMERSON ROGER BUSTAMANTE;Emerson Roger Bustamante

Exemplo de linhas que não podem aparecer no resultado:
ssd;SSD SSD;Ssd Ssd
negocios.defesa;GSN SUPORTE A NEGOCIOS;Gsn Suporte a Negocios
negocios.social;GSN SUPORTE A NEGOCIOS;Gsn Suporte a Negocios
negocios.governo;GSN SUPORTE A NEGOCIOS;Gsn Suporte a Negocios

Todas essa linhas tem apenas 3 caracteres na palavra inicial (SSD e GSN)



Em 5 de março de 2012 11:27, Rodrigo Boechat <
address@hidden> escreveu:

> **
>
>
> Esqueci de falar que eu usei o "-r" agora. Ele torna desnecessário o uso
> da "contra-barra" e habilita outras coisas interessantes. Acho que vale
> a pena estudar a opção.
> :)
>
> Em 05-03-2012 11:20, Rodrigo Boechat escreveu:
>
> > Realmente tinha entendido errado.
> > Tente essa:
> > sed -r "s/((.*;){2}.*)/\2/;s/;//g;/^[[:upper:]]{3} /d" teste
> >
> > Explicando:
> > As "contra-barras" são para informar ao sed que o próximo caractere
> > não deve ser tratado como caractere de controle do próprio sed. Há
> > expressões, do sed, que você poderá usar "\{3\}" para contar 3
> > caracteres e "{}" para delimitar uma área de execução.
> > Não sei se fui completamente claro...
> >
> > Em 05-03-2012 10:56, Adonai Silveira Canez escreveu:
> >> Rodrigo, infelizmente não funcionou, de repente o meu exemplo não foi
> bem
> >> explicado, vou tentar explicar melhor.
> >> O arquivo que estou manipulado tme o nome das pessoas na segunda coluna,
> >> como pode-se ver naquele exemplo que eu passei, nessa coluna existe
> nome de
> >> pessoas escrito totalmente em maiusculo e nomes de pessoas que estão
> >> escritos com a primeira letra maiuscula e as demais em minusculo. Eu
> >> preciso pegar apenas os nomes que estão com todas as letras em
> maisuculo e
> >> que tenham na primera palavra do nome 4 ou mais letras.
> >>
> >> Eu não consegui entender o tua expressão, gostaria de saber qua a
> utilidade
> >> do \ antes dos ( no \{2\} isso é para as chaves serem reconhecidas como
> >> caracter especial??
> >>
> >>
> >> Em 5 de março de 2012 10:45, Rodrigo Boechat<
> >> address@hidden> escreveu:
> >>
> >>> **
> >>>
> >>>
> >>> Veja se essa linha te ajuda.
> >>> sed "s/\(\(.*;\)\{2\}.*\)/\2/;s/;//g;s/^\([[:upper:]]\{3\}
> >>> \)\([[:upper:]]*\)/\2/" teste
> >>>
> >>> "teste" é o arquivo com os dados que você passou como exemplo.
> >>>
> >>> Abraço!
> >>>
> >>> Em 05-03-2012 10:18, Adonai Silveira Canez escreveu:
> >>>
> >>>> Pessoal, preciso de uma ajuda com mais uma expressão regular, coisas
> >>>> básicas eu já estou conseguindo fazer, mas essa eu não estou
> acertando,
> >>> um
> >>>> dos problema é que não sei como especificar que algumas coisas. Abaixo
> >>>> está
> >>>> o resultado da minha consulta, o problema é que eu preciso que no
> >>>> resultado
> >>>> não apareca os nomes que no inicio (após a primeira virgula) tenha
> >>>> apenas 3
> >>>> letras maiusculas, tipo: os 3 primeiros GSN SUPORTE A NEGOCIOS e GPC
> >>>> GERENCIA DE PLANEJAMENTO E CONTROLE DE PRODUCAO, como eu faço para
> criar
> >>>> uma culta que pegua apenas as palavras que tenham 4 um mais letras
> >>>> maiusculas seguido por um espaço e após outras letras maiusculas e
> outros
> >>>> espaços, básicamente é para pegar apenas as pessoas que tem no minimo
> >>> dois
> >>>> nomes que estejam com todas as letras escritas em maiusculo.
> >>>>
> >>>> cat temp2.txt | sed -n -r '/.*;[[:upper:] ]*;.*/p'
> >>>>
> >>>> negocios.defesa;GSN SUPORTE A NEGOCIOS;Gsn Suporte a Negocios
> >>>> negocios.social;GSN SUPORTE A NEGOCIOS;Gsn Suporte a Negocios
> >>>> negocios.governo;GSN SUPORTE A NEGOCIOS;Gsn Suporte a Negocios
> >>>> fernando.josafa;FERNANDO JOSAFA DOS SANTOS;Fernando Josafa Dos Santos
> >>>> nathalia.silva;NATHALIA JULIENE ALVES DA SILVA;Nathalia Juliene Alves
> da
> >>>> Silva
> >>>> rayane.dieguez;RAYANE SOUZA DIEGUEZ;Rayane Souza Dieguez
> >>>> gpc;GPC GERENCIA DE PLANEJAMENTO E CONTROLE DE PRODUCAO;Gpc Gerencia
> de
> >>>> Planejamento e Controle de Producao
> >>>> rafael.monteiro;RAFAEL FLISTER MONTEIRO;Rafael Flister Monteiro
> >>>> daniel.souza;DANIEL EDILSON DE SOUZA;Daniel Edilson de Souza
> >>>>
> >>>> Adonai Canez
> >>>>
> >>>> [As partes desta mensagem que não continham texto foram removidas]
> >>>>
> >>>>
> >>> [As partes desta mensagem que não continham texto foram removidas]
> >>>
> >>>
> >>>
> >> [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
> >> ----------------------------------------------------------
> >> Esta lista é moderada de acordo com o previsto
> emhttp://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]
>
>  
>


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



reply via email to

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