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

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

Re: [shell-script] Pesquisando e manipulando strings


From: Robson Alexandre
Subject: Re: [shell-script] Pesquisando e manipulando strings
Date: Mon, 5 Mar 2012 14:39:06 -0300

Vamos por partes, assim diria Jack:

sed -n -r
'/@/{s/.*>(.*)@.*/\1/;p};
# Essa primeira parte diz para aplicar o q está entre {} apenas nas
linhas q contém @ através do "/@/".
# Dentro dos {} temos:
# Através da ER " .*>(.*)@.* "
# Qualquer caracter até > , caracteres do usuario até @, e o resto dos
caracteres.
# como marcamos com (.*) os caracteres do username substituimos tudo por \1
# p apenas para imprimir o que queremos (username)

/matricula/{s/.*matricula=([0-9]*).*/\1/g;p}' temp2.txt
# Todas as linhas que contém "matricula" por /matricula/
# pegamos Qualquer caracter até matricula= ".*matricula=", Qualquer
numero com "[0-9]*", e o resto
# e substituimos tudo por somente os numeros de matrícula com \1 novamente
# e p para imprimir a matricula

| sed 'N;s/\n/;/'
# com a saida username\nmatricula substituimos a cada duas linhas "N"
todos os \n por ;

Atenciosamente
Robson Alexandre

Enviado por Samsung Mobile

Em 01/03/2012 09:45, "Adonai Silveira Canez" <address@hidden> escreveu:
>
>
>
> Pessoal, a solução que o Alexandre me passou resolveu o meu problema, mas
> eu não consegui entender a estrutura da ER, por isso gostaria que alguem me
> explicasse melhor o que está acontecendo, eu estou estudando expressões
> regulares com o livro: Expressões Regulares, Guia de Consulta Rapida do
> Aurelio Marinho Jargas, com o conteudo do livro eu não consegui entender
> essa expressão, por isso gostaria que alguem me explicasse, para que eu
> aprenda esse assunto.
>
> sed -n -r
> '/@/{s/.*>(.*)@.*/\1/;p};/matricula/{s/.*matricula=([0-9]*).*/\1/g;p}'
> temp2.txt | sed 'N;s/\n/;/'
>
> Adonai
>
> Em 29 de fevereiro de 2012 11:18, Robson Alexandre <
> address@hidden> escreveu:
>
> > Adonai,
> >
> > veja se é mais ou menos isso que vc precisa:
> >
> > sed -n -r
> > '/@/{s/.*>(.*)@.*/\1/;p};/matricula/{s/.*matricula=([0-9]*).*/\1/g;p}'
> > /tmp/arquivo | sed 'N;s/\n/;/'
> >
> > Melhor visualizado no link abaixo
> > http://pastebin.com/xnWwFzJh
> >
> >
> > Att
> > Robson Alexandre
> >
> > Em 29 de fevereiro de 2012 10:52, Adonai Silveira Canez <
> > address@hidden> escreveu:
> >
> > > **
> > >
> > >
> > > Petterson, isso eu sei, o problema é que ainda não domino como fazer os
> > > filtros, por isso estou pedindo ajuda na lista, se tiver um livro que me
> > > ajude a conhecer os recursos das ferramentas que posso usar num shell
> > > script vai me ajudar. Mas até eu conhecer bem sobre shell script vou ter
> > > que fazer essas perguntas mais básicas.
> > >
> > > Adonai
> > >
> > > Em 29 de fevereiro de 2012 10:40, Petterson Faria <
> > > address@hidden> escreveu:
> > >
> > >
> > > > Filtra o id da "matricula=" e o nome que esta antes de "@"
> > > > A consulta retorna o que esta perguntando ¬¬
> > > >
> > > > --
> > > > Atenciosamente,
> > > > *Petterson Faria*
> > > >
> > > > *"A ciência nunca resolve um problema sem criar mais dez"
> > > > (George Bernard Shaw*)
> > > >
> > > >
> > > >
> > > >
> > > > 2012/2/29 Adonai Silveira Canez <address@hidden>
> > > >
> > > > > **
> > > > >
> > > > >
> > > > > Pessoal, eu tenho um arquivo com o conteudo que está abaixo e preciso
> > > > gerar
> > > > > um arquivo que contenha apenas a matricula e o username do email
> > > > separados
> > > > > por ponto-e-virgula
> > > > >
> > > > > Arquivo entrada:
> > > > > document.write('<a
> > > > > href=/localizapessoas/bancodedados/FuncNome3.asp?matricula=035983>');
> > > > > <td align=left><font face='verdana' size=1><a
> > > > > href="mailto:address@hidden";>address@hidden
> > > > > </a></font>&nbsp;</td>
> > > > > document.write('<a
> > > > > href=/localizapessoas/bancodedados/FuncNome3.asp?matricula=053817>');
> > > > > <td align=left><font face='verdana' size=1><a
> > > > > href="mailto:address@hidden";>address@hidden
> > > > > </a></font>&nbsp;</td>
> > > > > document.write('<a
> > > > > href=/localizapessoas/bancodedados/FuncNome3.asp?matricula=013653>');
> > > > > <td align=left><font face='verdana' size=1><a
> > > > > href="mailto:address@hidden";>
> > > > > address@hidden
> > > > > </a></font>&nbsp;</td>
> > > > > document.write('<a
> > > > > href=/localizapessoas/bancodedados/FuncNome3.asp?matricula=052519>');
> > > > >
> > > > > Arquivo Saida:
> > > > > 035983;adelia
> > > > > 053817;adeliamm
> > > > > 013653;ademilde.pires
> > > > > 056760;ademilson
> > > > >
> > > > > Como eu processo esse texto para conseguir essa saida, qual comando
> > > usar?
> > > > > Imagino que o awk ou o sed façam isso, mas ainda não sei como
> > trabalhar
> > > > com
> > > > > eles, só sei o básico, inclusive gostaria de indicação de um bom
> > livro
> > > > > sobre o assunto shell script.
> > > > >
> > > > > [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 em
> > > > http://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]
> >
> >
> >
> > ------------------------------------
> >
> > ----------------------------------------------------------
> > 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
> > ----------------------------------------------------------
> > 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]
>
> 


reply via email to

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