Ir direto para busca.
sed-br · Lista sobre SED e Expressões Regulares

Informações sobre o grupo

? Você já é um associado? Entre no Yahoo!

Dicas

Você sabia...
Você pode fazer buscas no grupo por mensagens antigas.

Mensagens

  Ajuda
Avançado
mensagens 1435 - 1464 de 5039   Mais antigos  |  < Mais antigos  |  Mais recentes >  |  Mais recentes
mensagens 1435 - 1464 de 5039   Mais antigos  |  < Mais antigos  |  Mais recentes >  |  Mais recentes
mensagens: Exibir resumo de mensagens Classificar por data ^  
#1435 De: aurelio <aurelio@...>
Data: Seg, 24 de Mar de 2003 1:03 pm
Assunto: Re: Re: [t2t] Problemas com Post-convert editting (sed)
verde6666
Enviar e-mail Enviar e-mail
 
ae rodrigo,

  --- Rodrigo Sobrinho <programador.linux@...> escreveu:
> > /<table cellpadding=4 border=1>/{
> >   h
> >   s/.*/<table border="0" bgcolor="#E0E0E0" width="100%">
> >   N;N;H
> >   /<td>\(Pergunta\|Resposta\)/{ p;d; }
> >   g
> > }
>
> quase deu certo
> coloquei esse texto acima num arquivo script.sed
>
> se deixo exatamente da forma que vc colocou, aparece
>  sed: file script.sed line 3: Unterminated `s' command
> então alterei a linha 3 para (barra no final)

ok. erro meu (isso pe o que dá não testar)

> veja o resultado:
> [...]
> <table cellpadding=4 border=1>
> <table border="0" bgcolor="#E0E0E0" width="100%">
> <tr>
> <td>coluna da esquerda</td>
> [...]
> ou seja, o problema é que na segunda tabela ficou repetido duas vezes
> a tag table. O ideal seria não ter impresso essa linha, na segunda
> tabela <table border="0" bgcolor="#E0E0E0" width="100%">

ops!

aqui vai uma versão testada que funciona :)

/<table cellpadding=4 border=1>/{
    h
    s/.*/<table border="0" bgcolor="#E0E0E0" width="100%">/
    N;N
    /<td>\(Pergunta\|Resposta\)/{ p;d; }
    s/^[^\n]*\n// ;H;g
  }

=====
--
aurelio

_______________________________________________________________________
Yahoo! Mail
O melhor e-mail gratuito da internet: 6MB de espaço, antivírus, acesso POP3,
filtro contra spam.
http://br.mail.yahoo.com/

#1436 De: "Mauricio B. C. Vieira" <mvieira@...>
Data: Ter, 25 de Mar de 2003 5:18 pm
Assunto: Dúvida ER - alias
mbcvieira
Enviar e-mail Enviar e-mail
 
Salve,

   Estou com uma dúvida numa ER e peço para que me ajudem. Estou
   removendo usuários e quero remover os logins do /etc/aliases (e do
   /etc/group tbm).
   Por exemplo, quero remover o usuário mvieira e tenho as seguintes situações:

   : mvieira, outrologin, outrologin2$
   (...), mvieira, outrologin, outrologin2$
   onde (...) são outros logins antes, no mesmo alias

   : mvieira$
   , mvieira$
   onde $ é o fim da linha

   e as versões sem os espaços no início
   :mvieira, (...outroslogins)
   ,mvieira, (...outroslogins)
   :mvieira$
   ,mvieira$

   e ainda há a possibilidade de ter espaços depois do login, no caso de
   ele estar sozinho.
   :mvieira        $
   :     mvieira   $
   , mvieira    $

   etc.

   quando o login tiver no meio de outros vários, num formato simples
   (vírgula espaço login)
   eu removo ele simplesmente (tem que prever a vírgula):
   LOGIN=mvieira #pego no script de remoção
   if sed "s/${LOGIN}//" $ALIASES
     then
       cat $ALIASES | sed "s/, ${LOGIN}//" > $ALIASES #funciona =)
   fi

   mas se ele vem no começo, não tenho como saber se ele é o único
   apontado naquele alias ou se ele é o primeiro de uma série de outros.
   ex:

   admin: mvieira
   webmaster: mvieira, almeida

   não posso fazer simplesmente
   sed 's/: mvieira//' pq pode ter a vírgula logo após (ou separada por
   espaços, como webmaster: mvieira     , almeida

   e preciso detectar se ele é o único daquele alias, e neste caso eu
   removo o alias todo com um sed /nomedoalias/d

   Podem me ajudar?
   como faço para usar um tipo de expressão genérico como :space: ou
   :alpha: em sed? acho que se tiver isto eu consigo fazer a ER. meu
   problema é que '.' casa tudo e todos.

   Obrigado,





--
Mauricio B. C. Vieira - <mvieira@...>
Estudante de Ciência da Computação - http://twiki.im.ufba.br/~MauricioVieira
Membro do GAVRI - http://gavri.im.ufba.br

#1437 De: Thobias Salazar Trevisan <thobias@...>
Data: Ter, 25 de Mar de 2003 8:11 pm
Assunto: Re: Dúvida ER - alias
servagem
Enviar e-mail Enviar e-mail
 
ae Mauricio,

On Tue, 25 Mar 2003, Mauricio B. C. Vieira wrote:

>   Por exemplo, quero remover o usuário mvieira e tenho as seguintes situações:
>
>   : mvieira, outrologin, outrologin2$
>   (...), mvieira, outrologin, outrologin2$
>   onde (...) são outros logins antes, no mesmo alias
>
>   : mvieira$
>   , mvieira$
>   onde $ é o fim da linha
>
>   e as versões sem os espaços no início
>   :mvieira, (...outroslogins)
>   ,mvieira, (...outroslogins)
>   :mvieira$
>   ,mvieira$
>
>   e ainda há a possibilidade de ter espaços depois do login, no caso de
>   ele estar sozinho.
>   :mvieira        $
>   :     mvieira   $
>   , mvieira    $

pode usar sed 's/\bmvieira\b//'
\b eh borda. ele engloba [A-Za-z0-9_]

ou utilize uma lista negada

sed 's/[^a-z...]mvieira[^a-z..]//'

>   Podem me ajudar?
>   como faço para usar um tipo de expressão genérico como :space: ou
>   :alpha: em sed? acho que se tiver isto eu consigo fazer a ER. meu
>   problema é que '.' casa tudo e todos.

use [[:space:]]. ex:

sed '/^[[:space:]]/d'

falow

thobias
-------
echo 24883721290304465999833114447114149701898P | dc
-------
http://www.lcp.coppe.ufrj.br/~thobias

____________________________
|
| Against - HTML Mail
| Against - MS ATTACHMENTS
|
----------------------------

#1438 De: "Luciano ES" <luc-groups@...>
Data: Qua, 26 de Mar de 2003 6:37 pm
Assunto: Re: script de automação
lucianolists
Enviar e-mail Enviar e-mail
 
Caio,
	 Use o script bash abaixo. Eu fiz em Windows, com os meus diretórios,
você vai ter que adaptar. Também fiz dois porque o uso de aspas duplas
e simples é diferente nos dois sistemas, você também vai ter que
adaptar. O e-mail quebra as linhas, então adicionei a string '## ' a
todas as linhas para identificar. É preciso removê-las antes de usar.
	 O grep deveria localizar arquivos no diretório e em todos os
subdiretórios com a opção -R, não sei porque não está
funcionando. Na próxima vez, coloque sua pergunta na lista, assim outras
pessoas ajudam. Sei que tem um jeito de fazer "recursion" com o bash, mas
eu não uso Linux e não sou bom com shell scripting, me atrapalho todo.
Na próxima vez, diga-me também se a sua máquina tem Tcl ou PHP, fica
bem mais fácil para mim. Se só tiver Python, peça ajuda ao Aurélio.
Ele é que gosta de minhoca.

Windows.sh -------------------- 8< --------------------------
## input='c:\windows\desktop\*.txt';
## output='c:\windows\desktop\out.htm';

## grep -R -l -e ".*" $input |
## sed -r "s/^(.*[\\\/]([^\\/]+\.txt)\$)/<a
href=\"\1\"><u>\2<\/u><\/a><br>/" |
## gawk "BEGIN {print \"<html><head>\n\"};{print};END {print
\"\n</body></html>\"}" > $output
-------------------------------- >8 --------------------------------

Unix.sh ------------------------ 8< ------------------------------
## input='c:\windows\desktop\*.txt';
## output='c:\windows\desktop\out.htm';

## grep -R -l -e '.*' $input |
## sed -r 's/^(.*[\\\/]([^\\/]+\.txt)\$)/<a
href="\1"><u>\2<\/u><\/a><br>/' |
## gawk 'BEGIN {print "<html><head>\n"};{print};END {print
"\n</body></html>"}' > $output
-------------------------------- >8 --------------------------------

--
	 Luciano Espirito Santo
	 Santos, SP - Brasil

<-quote-> **************************************************
On 26/03/03 at 13:13, CAIO ABREU FERREIRA wrote in 3K:
Assunto/Subject: script de automação

>> - vai lá no diretório /home/cosmo/arquivo/txt/linux/ e cria o
arquivo
>>index.htm. Escreve assim:
>> <html><head>
>> [linha em branco]
>> - daí você roda essa linha:
>>grep -Hr -m1 ".*" /home/cosmo/dicas-l/*.* | sed -r  "s/([^:]+):(.*)/<a
>>href=\"\1\"><u>\2<\/u><\/a><br>/" >  /home/cosmo/dicas-l/index.htm

>Realmente deu meio certo. Ficou meio bagunçado :-) !!
>Como título na página html pode ser simplesmente o nome do arquivo,
já que
>todos os arquivos tem o nome que ajuda, vide exemplo acima.
>Uma outra dúvida, existe alguma forma de vasculhar subdiretórios ?!?
É que
>dentro do diretório llinux existe o subdiretório vi, sendmail, apache
e
>outros.

********* END OF ORIGINAL MESSAGE *********</-quote->

#1439 De: "Mauricio B. C. Vieira" <mvieira@...>
Data: Sex, 28 de Mar de 2003 3:07 pm
Assunto: Bloco de comandos -> ainda sobre o aliases
mbcvieira
Enviar e-mail Enviar e-mail
 
Caros,

   Não sei porque não está funcionando o seguinte bloco de comandos em
   sed. Eu tenho ele dentro de um bash script e não está funcioando no
   shell. O trecho é:

  LOGIN=mvieira
  ALIASES=myaliases
  if sed "/${LOGIN}/p" &>/dev/null $ALIASES
    then
      cat $ALIASES | sed "1,/mailman-owner/ {\
        s/\b${LOGIN}\b//g\
        s/[[:space:]]//g\
        s/\:,/\:/\
        s/,,\+/,/g\
        s/,$//\
        /\:$/d\
        s/\:/\: /\
        s/,/, /g}" > $ALIASES.teste
  fi

  A resposta do shell é :

sed: -e expression #1, char 40: Unknown option to 's'

  Quero executar estes comandos da primeira linha até a linha que
  aparecer mailman-owner.

  Tentei mudar as aspas de algumas formas e ele sempre dá ou 'missing
  command' ou 'Unknown option to 's''.

  Estou com algum problema de sintaxe, podem me ajudar?


--
Mauricio B. C. Vieira - <mvieira@...>
Estudante de Ciência da Computação - http://twiki.im.ufba.br/~MauricioVieira
Membro do GAVRI - http://gavri.im.ufba.br

#1440 De: Davis Zanetti Cabral <Davis.Cabral@...>
Data: Sex, 28 de Mar de 2003 3:40 pm
Assunto: RES: Bloco de comandos -> ainda sobre o aliases
davis_cabral
Enviar e-mail Enviar e-mail
 
LOGIN=mvieira
  ALIASES=myaliases
  if sed "/${LOGIN}/p" &>/dev/null $ALIASES
    then
      cat $ALIASES | sed "1,/mailman-owner/ {\
        s/\b${LOGIN}\b//g\
        s/[[:space:]]//g\
        s/\:,/\:/\
        s/,,\+/,/g\
        s/,$//\
-----> s/\:$/d\
        s/\:/\: /\
        s/,/, /g}" > $ALIASES.teste
  fi

nao seria a falta desse s? desculpem me meter assim hehe... nem sei direito
como o comando funciona.. um dos motivos de ter entrado na lista... a
analise que fiz foi totalmente logica, nao tem base nenhuma...

[]s

Davis

-----Mensagem original-----
De: Mauricio B. C. Vieira [mailto:mvieira@...]
Enviada em: Friday, March 28, 2003 12:07 PM
Para: Lista sed-br
Assunto: [sed-br] Bloco de comandos -> ainda sobre o aliases


Caros,

   Não sei porque não está funcionando o seguinte bloco de comandos em
   sed. Eu tenho ele dentro de um bash script e não está funcioando no
   shell. O trecho é:

  LOGIN=mvieira
  ALIASES=myaliases
  if sed "/${LOGIN}/p" &>/dev/null $ALIASES
    then
      cat $ALIASES | sed "1,/mailman-owner/ {\
        s/\b${LOGIN}\b//g\
        s/[[:space:]]//g\
        s/\:,/\:/\
        s/,,\+/,/g\
        s/,$//\
        /\:$/d\
        s/\:/\: /\
        s/,/, /g}" > $ALIASES.teste
  fi

  A resposta do shell é :

sed: -e expression #1, char 40: Unknown option to 's'

  Quero executar estes comandos da primeira linha até a linha que
  aparecer mailman-owner.

  Tentei mudar as aspas de algumas formas e ele sempre dá ou 'missing
  command' ou 'Unknown option to 's''.

  Estou com algum problema de sintaxe, podem me ajudar?


--
Mauricio B. C. Vieira - <mvieira@...>
Estudante de Ciência da Computação - http://twiki.im.ufba.br/~MauricioVieira
Membro do GAVRI - http://gavri.im.ufba.br


--
para sair da lista: sed-br-unsubscribe@...

Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html




__________Confidencialidade do Correio do Eletrônico_________________
Informações confidenciais podem estar contidas nesta mensagem. Se você não
se encontra na lista de destinatários ou não é o remetente da mesma, você
não deve copiar ou enviar esta mensagem para ninguém. Neste caso, você deve
destruir e notificar o remetente da mesma. A empresa considera opiniões,
conclusões e outras informações que não se relacionam com o negócio oficial
da corporação de responsabilidade do usuário do serviço.
_____________________________________________________________

#1441 De: "Luciano ES" <luc-groups@...>
Data: Sex, 28 de Mar de 2003 4:07 pm
Assunto: Muitas combinações
lucianolists
Enviar e-mail Enviar e-mail
 
Gentes, estou assaz embatucado com esse problema, nem sei mais se dá pra
fazer mesmo.

	 Suponha a seguinte frase:
	 "Oi, meu nome é Luciano, eu gosto muito do super-sed".

	 Daí eu quero rodar uma ER nessa string e retornar:

	 "Oi, meu nome é Luciano, eu gosto muito do".
	 "Oi, meu nome é Luciano, eu gosto muito".
	 "Oi, meu nome é Luciano, eu gosto".
	 "Oi, meu nome é Luciano, eu".
	 "Oi, meu nome é Luciano".
	 "Oi, meu nome é".
	 "Oi, meu nome".
	 "Oi, meu".
	 "Oi".
	 "meu nome é Luciano, eu gosto muito do super-sed".
	 "nome é Luciano, eu gosto muito do super-sed".
	 "é Luciano, eu gosto muito do super-sed".
	 "Luciano, eu gosto muito do super-sed".
	 "eu gosto muito do super-sed".
	 "gosto muito do super-sed".
	 "muito do super-sed".
	 "do super-sed".
	 "super-sed".
	 ... entre muitas outras possibilidades, menos aquelas em que as palavras
não ocupam posições adjacentes. Ou seja, "meu Luciano muito
super-sed" não vale porque essas palavras não estão juntas. Eu estou
prestes a entrar num emaranhado sem fim de arrays e loops, mas gostaria
muito de receber alguma sugestão antes de começar. Porque vai ser um
pepinão mesmo... Pode ser com sed, super-sed, awk, perl ou o escambau.
Só não vale Python.

	 Obrigados,
--
	 Luciano Espirito Santo
	 Santos, SP - Brasil

#1442 De: Thobias Salazar Trevisan <thobias@...>
Data: Sex, 28 de Mar de 2003 4:49 pm
Assunto: Re: Bloco de comandos -> ainda sobre o aliases
servagem
Enviar e-mail Enviar e-mail
 
ae mauricio,

On Fri, 28 Mar 2003, Mauricio B. C. Vieira wrote:

>  LOGIN=mvieira
>  ALIASES=myaliases
>  if sed "/${LOGIN}/p" &>/dev/null $ALIASES
>    then
>      cat $ALIASES | sed "1,/mailman-owner/ {\
>        s/\b${LOGIN}\b//g\
>        s/[[:space:]]//g\
>        s/\:,/\:/\
>        s/,,\+/,/g\
>        s/,$//\
>        /\:$/d\
>        s/\:/\: /\
>        s/,/, /g}" > $ALIASES.teste
>  fi

vc separa os comandos dentro do sed utilizando ;
e quando vc utiliza {}, apos o ultimo comando tb precisa de um ;
ex:

$ cat x | sed "1,/mailman-owner/{s/\b${LOGIN}\b//gs/[[:space:]]//g}"
sed: -e expression #1, char 35: Unknown option to 's'

$ cat x | sed "1,/mailman-owner/{s/\b${LOGIN}\b//g;s/[[:space:]]//g;}"
comando OK

assim, acrescente antes do \ um ; a antes do } tambem.

       cat $ALIASES | sed "1,/mailman-owner/{\
         s/\b${LOGIN}\b//g;\
         s/[[:space:]]//g;\
<corta>
         s/,/, /g;}"

falow

thobias
-------
echo 24883721290304465999833114447114149701898P | dc
-------
http://www.lcp.coppe.ufrj.br/~thobias

____________________________
|
| Against - HTML Mail
| Against - MS ATTACHMENTS
|
----------------------------

#1443 De: aurelio <aurelio@...>
Data: Sex, 28 de Mar de 2003 6:04 pm
Assunto: Re: Bloco de comandos -> ainda sobre o aliases
verde6666
Enviar e-mail Enviar e-mail
 
aes,

> >      cat $ALIASES | sed "1,/mailman-owner/ {\
> >        s/\b${LOGIN}\b//g\
> >        s/[[:space:]]//g\
> >        s/\:,/\:/\
> >        s/,,\+/,/g\
> >        s/,$//\
> >        /\:$/d\
> >        s/\:/\: /\
> >        s/,/, /g}" > $ALIASES.teste
>
> vc separa os comandos dentro do sed utilizando ;
> e quando vc utiliza {}, apos o ultimo comando tb precisa de um ;
> ex:
[...]
> assim, acrescente antes do \ um ; a antes do } tambem.
>
>       cat $ALIASES | sed "1,/mailman-owner/{\
>         s/\b${LOGIN}\b//g;\
>         s/[[:space:]]//g;\
> <corta>
>         s/,/, /g;}"

como os comandos já estão entre "aspas", e a quebra de linha também
é separador de comandos para o sed, na verdade não precisa nem
dos ; e nem das \ nos comandos acima &;)

>       cat $ALIASES | sed "1,/mailman-owner/{
>         s/\b${LOGIN}\b//g
>         s/[[:space:]]//g
> <corta>
>         s/,/, /g"

falouzz!

=====
--
aurelio

_______________________________________________________________________
Yahoo! Mail
O melhor e-mail gratuito da internet: 6MB de espaço, antivírus, acesso POP3,
filtro contra spam.
http://br.mail.yahoo.com/

#1444 De: aurelio <aurelio@...>
Data: Sex, 28 de Mar de 2003 6:16 pm
Assunto: Re: Muitas_combinações
verde6666
Enviar e-mail Enviar e-mail
 
olha,

eu até ia fazer em Python pra te sacanear, mas em sed é muito
mas massa :)

$ echo '"Oi, meu nome é Luciano, eu gosto muito do Python".' |
   sed ':a;p;s/,\? [^ ]*$/"./;ta;d'
"Oi, meu nome é Luciano, eu gosto muito do Python".
"Oi, meu nome é Luciano, eu gosto muito do".
"Oi, meu nome é Luciano, eu gosto muito".
"Oi, meu nome é Luciano, eu gosto".
"Oi, meu nome é Luciano, eu".
"Oi, meu nome é Luciano".
"Oi, meu nome é".
"Oi, meu nome".
"Oi, meu".
"Oi".

$ echo '"Oi, meu nome é Luciano, eu gosto muito do Python".' |
   sed ':a;p;s/^[^ ]* /"/;ta;d'
"Oi, meu nome é Luciano, eu gosto muito do Python".
"meu nome é Luciano, eu gosto muito do Python".
"nome é Luciano, eu gosto muito do Python".
"é Luciano, eu gosto muito do Python".
"Luciano, eu gosto muito do Python".
"eu gosto muito do Python".
"gosto muito do Python".
"muito do Python".
"do Python".
"Python".


  --- Luciano ES <luc-groups@...> escreveu: >
Gentes, estou assaz embatucado com esse problema, nem sei mais se dá
> pra
> fazer mesmo.
>
>  Suponha a seguinte frase:
>  "Oi, meu nome é Luciano, eu gosto muito do super-sed".
>
>  Daí eu quero rodar uma ER nessa string e retornar:
>
>  "Oi, meu nome é Luciano, eu gosto muito do".
>  "Oi, meu nome é Luciano, eu gosto muito".
>  "Oi, meu nome é Luciano, eu gosto".
>  "Oi, meu nome é Luciano, eu".
>  "Oi, meu nome é Luciano".
>  "Oi, meu nome é".
>  "Oi, meu nome".
>  "Oi, meu".
>  "Oi".
>  "meu nome é Luciano, eu gosto muito do super-sed".
>  "nome é Luciano, eu gosto muito do super-sed".
>  "é Luciano, eu gosto muito do super-sed".
>  "Luciano, eu gosto muito do super-sed".
>  "eu gosto muito do super-sed".
>  "gosto muito do super-sed".
>  "muito do super-sed".
>  "do super-sed".
>  "super-sed".
>  ... entre muitas outras possibilidades, menos aquelas em que as
> palavras
> não ocupam posições adjacentes. Ou seja, "meu Luciano muito
> super-sed" não vale porque essas palavras não estão juntas. Eu estou
> prestes a entrar num emaranhado sem fim de arrays e loops, mas
> gostaria
> muito de receber alguma sugestão antes de começar. Porque vai ser um
> pepinão mesmo... Pode ser com sed, super-sed, awk, perl ou o
> escambau.
> Só não vale Python.
>
>  Obrigados,
> --
>  Luciano Espirito Santo
>  Santos, SP - Brasil
>
>
>
> --
> para sair da lista: sed-br-unsubscribe@...
>
> Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
> http://br.yahoo.com/info/utos.html
>
>

=====
--
aurelio

_______________________________________________________________________
Yahoo! Mail
O melhor e-mail gratuito da internet: 6MB de espaço, antivírus, acesso POP3,
filtro contra spam.
http://br.mail.yahoo.com/

#1445 De: Henrique Limaverde Cabral de Lima <hl@...>
Data: Sex, 28 de Mar de 2003 6:34 pm
Assunto: Re: Muitas combinações
hl@...
Enviar e-mail Enviar e-mail
 
Luciano,
pelo que eu entendi voce quer todas as combinacoes possiveis e nao apenas
ir retirando uma palavra de cada vez. Eu fiz em C e, dah pra converter
p/ awk sem muito problema (eu acho). Como a lista nao eh de script, muito
menos de C, eu te passo em off se voce estiver interessado e o Aurelio
nao desenrole isso em sed :)

      Henrique Lima

PS: Ficou bem pequeno: 25 linhas)


On Fri, 28 Mar 2003, Luciano ES wrote:

>  Gentes, estou assaz embatucado com esse problema, nem sei mais se dá pra
> fazer mesmo.
>
>  Suponha a seguinte frase:
>  "Oi, meu nome é Luciano, eu gosto muito do super-sed".
>
>  Daí eu quero rodar uma ER nessa string e retornar:
>
>  "Oi, meu nome é Luciano, eu gosto muito do".
>  "Oi, meu nome é Luciano, eu gosto muito".
>  "Oi, meu nome é Luciano, eu gosto".
>  "Oi, meu nome é Luciano, eu".
>  "Oi, meu nome é Luciano".
>  "Oi, meu nome é".
>  "Oi, meu nome".
>  "Oi, meu".
>  "Oi".
>  "meu nome é Luciano, eu gosto muito do super-sed".
>  "nome é Luciano, eu gosto muito do super-sed".
>  "é Luciano, eu gosto muito do super-sed".
>  "Luciano, eu gosto muito do super-sed".
>  "eu gosto muito do super-sed".
>  "gosto muito do super-sed".
>  "muito do super-sed".
>  "do super-sed".
>  "super-sed".
>  ... entre muitas outras possibilidades, menos aquelas em que as palavras
> não ocupam posições adjacentes. Ou seja, "meu Luciano muito
> super-sed" não vale porque essas palavras não estão juntas. Eu estou
> prestes a entrar num emaranhado sem fim de arrays e loops, mas gostaria
> muito de receber alguma sugestão antes de começar. Porque vai ser um
> pepinão mesmo... Pode ser com sed, super-sed, awk, perl ou o escambau.
> Só não vale Python.
>
>  Obrigados,
>

#1446 De: "Mauricio B. C. Vieira" <mvieira@...>
Data: Sex, 28 de Mar de 2003 7:19 pm
Assunto: Re: RES: Bloco de comandos -> ainda sobre o aliases
mbcvieira
Enviar e-mail Enviar e-mail
 
Não, neste caso, quero deletar (d) a linha que possuir um : no fim da
linha

s/// é pra substituir.

www.verde666.org/sed veja o sed-howto.

On Fri, Mar 28, 2003 at 12:40:34PM -0300, Davis Zanetti Cabral wrote:
>  LOGIN=mvieira
>  ALIASES=myaliases
>  if sed "/${LOGIN}/p" &>/dev/null $ALIASES
>    then
>      cat $ALIASES | sed "1,/mailman-owner/ {\
>        s/\b${LOGIN}\b//g\
>        s/[[:space:]]//g\
>        s/\:,/\:/\
>        s/,,\+/,/g\
>        s/,$//\
> -----> s/\:$/d\
>        s/\:/\: /\
>        s/,/, /g}" > $ALIASES.teste
>  fi
>
> nao seria a falta desse s? desculpem me meter assim hehe... nem sei direito
> como o comando funciona.. um dos motivos de ter entrado na lista... a
> analise que fiz foi totalmente logica, nao tem base nenhuma...
>
> []s
>
> Davis
>
> -----Mensagem original-----
> De: Mauricio B. C. Vieira [mailto:mvieira@...]
> Enviada em: Friday, March 28, 2003 12:07 PM
> Para: Lista sed-br
> Assunto: [sed-br] Bloco de comandos -> ainda sobre o aliases
>
>
> Caros,
>
>   N?o sei porque n?o est? funcionando o seguinte bloco de comandos em
>   sed. Eu tenho ele dentro de um bash script e n?o est? funcioando no
>   shell. O trecho ?:
>
>  LOGIN=mvieira
>  ALIASES=myaliases
>  if sed "/${LOGIN}/p" &>/dev/null $ALIASES
>    then
>      cat $ALIASES | sed "1,/mailman-owner/ {\
>        s/\b${LOGIN}\b//g\
>        s/[[:space:]]//g\
>        s/\:,/\:/\
>        s/,,\+/,/g\
>        s/,$//\
>        /\:$/d\
>        s/\:/\: /\
>        s/,/, /g}" > $ALIASES.teste
>  fi
>
>  A resposta do shell ? :
>
> sed: -e expression #1, char 40: Unknown option to 's'
>
>  Quero executar estes comandos da primeira linha at? a linha que
>  aparecer mailman-owner.
>
>  Tentei mudar as aspas de algumas formas e ele sempre d? ou 'missing
>  command' ou 'Unknown option to 's''.
>
>  Estou com algum problema de sintaxe, podem me ajudar?
>
>
> --
> Mauricio B. C. Vieira - <mvieira@...>
> Estudante de Ci?ncia da Computa??o - http://twiki.im.ufba.br/~MauricioVieira
> Membro do GAVRI - http://gavri.im.ufba.br
>
>
> --
> para sair da lista: sed-br-unsubscribe@...
>
> Seu uso do Yahoo! Grupos ? sujeito ?s regras descritas em:
> http://br.yahoo.com/info/utos.html
>
>
>
>
> __________Confidencialidade do Correio do Eletr?nico_________________
> Informa??es confidenciais podem estar contidas nesta mensagem. Se voc? n?o
> se encontra na lista de destinat?rios ou n?o ? o remetente da mesma, voc?
> n?o deve copiar ou enviar esta mensagem para ningu?m. Neste caso, voc? deve
> destruir e notificar o remetente da mesma. A empresa considera opini?es,
> conclus?es e outras informa??es que n?o se relacionam com o neg?cio oficial
> da corpora??o de responsabilidade do usu?rio do servi?o.
> _____________________________________________________________
>
>
>
> --
> para sair da lista: sed-br-unsubscribe@...
>
> Seu uso do Yahoo! Grupos ? sujeito ?s regras descritas em:
http://br.yahoo.com/info/utos.html
>

--
Mauricio B. C. Vieira - <mvieira@...>
Estudante de Ciência da Computação - http://twiki.im.ufba.br/~MauricioVieira
Membro do GAVRI - http://gavri.im.ufba.br

#1447 De: "Luciano ES" <luc-groups@...>
Data: Sex, 28 de Mar de 2003 7:22 pm
Assunto: Re: Muitas combinações
lucianolists
Enviar e-mail Enviar e-mail
 
Henrique,
	 Obrigado pela resposta. Eu não saco nada de C, queria muito aprender mas
vivo adiando. Mas eu falo PHP, Perl, awk, e um pouquinho de bash e rexx ...
Então deve dar para captar o conceito e traduzir para língua de gente.
Agradeço muito.
	 Ah, parece que só você entendeu mesmo a minha idéia.

--
	 Luciano Espirito Santo
	 Santos, SP - Brasil

<-quote-> **************************************************
On 28/03/03 at 15:34, Henrique Limaverde Cabral de Lima wrote in 4K:
Assunto/Subject: Re: [sed-br] Muitas combinações

>Luciano,
>pelo que eu entendi voce quer todas as combinacoes possiveis e nao apenas
>ir retirando uma palavra de cada vez. Eu fiz em C e, dah pra converter
>p/ awk sem muito problema (eu acho). Como a lista nao eh de script, muito
>menos de C, eu te passo em off se voce estiver interessado e o Aurelio
>nao desenrole isso em sed :)

********* END OF ORIGINAL MESSAGE *********</-quote->

#1448 De: "Luciano ES" <luc-groups@...>
Data: Sex, 28 de Mar de 2003 7:32 pm
Assunto: Re: Muitas_combinações
lucianolists
Enviar e-mail Enviar e-mail
 
Ê, traiçoeiro!

	 É quase isso, Aurélio. E as seqüências do meio?
	 "meu nome é Luciano, eu"
	 "nome é Luciano"
	 etc... Se fosse só isso, era mais fácil mesmo. Eu já estou quase
chegando a uma solução em PHP, linguinha binita. Mas vai ser um
festival de lupes e arreis mesmo. Não teve acordo.

	 Agora quero manifestar meu protesto: várias pessoas estão me
respondendo em particular. Por mim, tudo bem, mas todos alegam que estão
respondendo em particular porque "meu script está em bash", "esse assunto
é ofitopique", ou "a lista nao é de script". Senhor moderador! Tem
moderador aqui? Quem é que manda nessa bagunça?
	 Falando sério: uma vez eu disse uma coisa assim na lista e o Aurélio
esclareceu que qualquer nerdice envolvendo manipulação de texto vale no
contexto da lista. Segundo o ponto de vista da opinião pessoal particular
própria minha, quando a resposta vai pra lista é melhor porque todo
mundo aproveita, todo mundo aprende, ajuda, corrige etc. Está sugerido.
	 E obrigado pela ajuda de todos. Eu não entendo muito bash, mas chegou um
treco aqui que me parece ser bem interessante.

--
	 Luciano Espirito Santo
	 Santos, SP - Brasil

<-quote-> **************************************************
On 28/03/03 at 15:16, aurelio wrote in 5K:
Assunto/Subject: Re: [sed-br] Muitas_combinações

>olha,
>
>eu até ia fazer em Python pra te sacanear, mas em sed é muito
>mas massa :)
>
>$ echo '"Oi, meu nome é Luciano, eu gosto muito do Python".' |
>  sed ':a;p;s/,\? [^ ]*$/"./;ta;d'

********* END OF ORIGINAL MESSAGE *********</-quote->

#1449 De: Frederico BOHNE Espinosa <bohne_listas@...>
Data: Sex, 28 de Mar de 2003 7:54 pm
Assunto: re: Muitas combinações
tchebohne
Enviar e-mail Enviar e-mail
 
Luciano:

	 Pois bem.. vou encarar a ira do sr. Moderador. :)
Concordo que podemos aprender muito com alguns adendos
half-off-topic. :)

	 Entao ae vai minha solucao...

	 Faltou alguma sequencia???

				 Bohne


==================================================

#!/bin/bash
FRASE="Oi, meu nome é Luciano, eu gosto muito do super-sed"

NRELEMENTOS=`echo $FRASE | wc -w`


for ((SUB=1;SUB <= "$NRELEMENTOS";SUB++));
  do

    for ((CONTADOR=1;CONTADOR <= "$NRELEMENTOS";CONTADOR++))
       do

          if [ $CONTADOR -ge $SUB ]

            then

         echo $FRASE | cut -f$SUB-$CONTADOR -d" "

            fi

      done

done


====================================================
--
Frederico BOHNE Espinosa <bohne_listas@...>

#1450 De: "Mauricio B. C. Vieira" <mvieira@...>
Data: Sex, 28 de Mar de 2003 7:52 pm
Assunto: Re: Bloco de comandos -> ainda sobre o aliases
mbcvieira
Enviar e-mail Enviar e-mail
 
Na verdade, ele chiou. Tirei as '\' mas tive que colocar os ';'.

Pelo menos aqui, precisa dos pontos e vírgulas.

On Fri, Mar 28, 2003 at 03:04:58PM -0300, aurelio wrote:
> aes,
>
>
> como os comandos já estão entre "aspas", e a quebra de linha também
> é separador de comandos para o sed, na verdade não precisa nem
> dos ; e nem das \ nos comandos acima &;)
>
> >       cat $ALIASES | sed "1,/mailman-owner/{
> >         s/\b${LOGIN}\b//g
> >         s/[[:space:]]//g
> > <corta>
> >         s/,/, /g"
>
> falouzz!
>
> =====
> --
> aurelio
>
> _______________________________________________________________________
> Yahoo! Mail
> O melhor e-mail gratuito da internet: 6MB de espaço, antivírus, acesso POP3,
filtro contra spam.
> http://br.mail.yahoo.com/
>
> --
> para sair da lista: sed-br-unsubscribe@...
>
> Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html
>

--
Mauricio B. C. Vieira - <mvieira@...>
Estudante de Ciência da Computação - http://twiki.im.ufba.br/~MauricioVieira
Membro do GAVRI - http://gavri.im.ufba.br

#1451 De: "Mauricio B. C. Vieira" <mvieira@...>
Data: Sex, 28 de Mar de 2003 8:16 pm
Assunto: Ainda no meu problema de aliases
mbcvieira
Enviar e-mail Enviar e-mail
 
Percebi que ele tirou todos os espaços nos comentários no arquivo (nem
tinha pensado nisto).

Como faço para pular as linhas que tiverm '#'?

Tentei:  /[^\#]/ {s/[[:space:]]//g;}; (se não tiver #, remova os
espaços) mas não funcionou.



--
Mauricio B. C. Vieira - <mvieira@...>
Estudante de Ciência da Computação - http://twiki.im.ufba.br/~MauricioVieira
Membro do GAVRI - http://gavri.im.ufba.br

#1452 De: aurelio <aurelio@...>
Data: Sex, 28 de Mar de 2003 8:19 pm
Assunto: re: Muitas combinações
verde6666
Enviar e-mail Enviar e-mail
 
aes,

êêêê sexta-feira....
nada como um desafio sed pra animar o espírito :)


  --- Frederico BOHNE Espinosa <bohne_listas@...> escreveu:
>  Pois bem.. vou encarar a ira do sr. Moderador. :)
> Concordo que podemos aprender muito com alguns adendos
> half-off-topic. :)

o sr. moderador (moá) indica as seguintes lista para tópicos
não sed:

shell-script@...
python-br@...
e assim vai...

lembrem-se que o sed também é usado no windows, e mesmo no linux
existem usuários que usam ksh e outros shells e não estão
nem aí pro bash. PHP é toy-language e nem precisa de lista de
discussão. Python detona mas pra isso tem a lista python-br
e C simplesmente sux :)

o sed é a única e verdadeira resposta para todos os problemas.
resistence is futile. ALL YOUR BASE ARE BELONG TO SED.

>  Entao ae vai minha solucao...
>  Faltou alguma sequencia???

aqui está o sed que faz exatamente o mesmo que esse shell script,
porém começando com a frase completa, conforme a primeira
especificação do Luciano-ssl (super-sed lover ;)

é bem interessante a abordagem, exitem duas marcas ':a' e ':b'
e basicamente é feito um loop nelas. o loop ':a' serve para
capar a última palavra e o loop ':b' serve para capar a primeira
palavra.

a cada entrada no loop ':b', o loop ':a' é repetido até acabar
as palavras, e assim vai.

é utilizado o RESERVA (comandos 'h' e 'g') para 'salvar' o estado
atual da frase para o loop ':b'


$ echo '"Oi, meu nome é Luciano, eu gosto muito do Python".' |
   sed ':b;h;:a;p;s/,\? [^ ]*$/"./;ta;g;s/^[^ ]* /"/;tb;d'
"Oi, meu nome é Luciano, eu gosto muito do Python".
"Oi, meu nome é Luciano, eu gosto muito do".
"Oi, meu nome é Luciano, eu gosto muito".
"Oi, meu nome é Luciano, eu gosto".
"Oi, meu nome é Luciano, eu".
"Oi, meu nome é Luciano".
"Oi, meu nome é".
"Oi, meu nome".
"Oi, meu".
"Oi".
"meu nome é Luciano, eu gosto muito do Python".
"meu nome é Luciano, eu gosto muito do".
"meu nome é Luciano, eu gosto muito".
"meu nome é Luciano, eu gosto".
"meu nome é Luciano, eu".
"meu nome é Luciano".
"meu nome é".
"meu nome".
"meu".
"nome é Luciano, eu gosto muito do Python".
"nome é Luciano, eu gosto muito do".
"nome é Luciano, eu gosto muito".
[...]
"gosto muito do Python".
"gosto muito do".
"gosto muito".
"gosto".
"muito do Python".
"muito do".
"muito".
"do Python".
"do".
"Python".


para obter o comportamento inverso de começar o corte pelo início
da frase basta trocar os dois s/// de lugar, mais nada:

$ echo '"Oi, meu nome é Luciano, eu gosto muito do Python".' |
   sed ':b;h;:a;p;s/^[^ ]* /"/;ta;g;s/,\? [^ ]*$/"./;;tb;d'
"Oi, meu nome é Luciano, eu gosto muito do Python".
"meu nome é Luciano, eu gosto muito do Python".
"nome é Luciano, eu gosto muito do Python".
"é Luciano, eu gosto muito do Python".
"Luciano, eu gosto muito do Python".
"eu gosto muito do Python".
"gosto muito do Python".
"muito do Python".
"do Python".
"Python".
"Oi, meu nome é Luciano, eu gosto muito do".
"meu nome é Luciano, eu gosto muito do".
"nome é Luciano, eu gosto muito do".
"é Luciano, eu gosto muito do".
"Luciano, eu gosto muito do".
"eu gosto muito do".
"gosto muito do".
[...]





> #!/bin/bash
> FRASE="Oi, meu nome é Luciano, eu gosto muito do super-sed"
> NRELEMENTOS=`echo $FRASE | wc -w`
>
> for ((SUB=1;SUB <= "$NRELEMENTOS";SUB++));
>  do
>    for ((CONTADOR=1;CONTADOR <= "$NRELEMENTOS";CONTADOR++))
>       do
>          if [ $CONTADOR -ge $SUB ]
>            then
>         echo $FRASE | cut -f$SUB-$CONTADOR -d" "
>            fi
>      done
> done

=====
--
aurelio

_______________________________________________________________________
Yahoo! Mail
O melhor e-mail gratuito da internet: 6MB de espaço, antivírus, acesso POP3,
filtro contra spam.
http://br.mail.yahoo.com/

#1453 De: "Luciano ES" <luc-groups@...>
Data: Sex, 28 de Mar de 2003 8:31 pm
Assunto: Re: Muitas combinações
lucianolists
Enviar e-mail Enviar e-mail
 
Opa! Então também vou mandar a resposta pra lista.

	 Não consigo rodar o seu script, Frederico. Eu não conheço bem a
sintaxe do bash, então não consigo saber o que ele quer de mim. Ele diz
que tem erro na linha 5:
	 s.sh: 5: Syntax error: Bad for loop variable
	 Que variable? "Sub" ou "remelentos"? :-) Eu mudei um pouco a
formatação do seu script...
-------------------------------- 8< --------------------------------
#!/bin/bash
FRASE="Oi, meu nome é Luciano, eu gosto muito do super-sed"
NRELEMENTOS=`echo $FRASE | wc -w`

for ((SUB=1;SUB <= "$NRELEMENTOS";SUB++)) do
	 for ((CONTADOR=1;CONTADOR <= "$NRELEMENTOS";CONTADOR++)) do
		 if [ $CONTADOR -ge $SUB ]
		 then
		 echo $FRASE | cut -f$SUB-$CONTADOR -d" "
		 fi
	 done
done
-------------------------------- >8 --------------------------------

	 ... linha 5 aqui é
	 for ((SUB=1;SUB <= "$NRELEMENTOS";SUB++)) do

	 Você sabe qual é o problema? Será que eu estraguei alguma coisa?
Acho que não, porque o original também não funciona. Eu não uso
bash legítimo, rodo um programinha chamado sh.exe em Windows, que até
hoje tem rodado scripts bash sem problema. Não lembro onde foi que eu
peguei. Será que é isso?

--
	 Luciano Espirito Santo
	 Santos, SP - Brasil


<-quote-> **************************************************
On 28/03/03 at 16:54, Frederico BOHNE Espinosa wrote in 3K:
Assunto/Subject: re: [sed-br] Muitas combinações

> Pois bem.. vou encarar a ira do sr. Moderador. :)
>Concordo que podemos aprender muito com alguns adendos
>half-off-topic. :)
> Entao ae vai minha solucao...
> Faltou alguma sequencia???

********* END OF ORIGINAL MESSAGE *********</-quote->

#1454 De: aurelio <aurelio@...>
Data: Sex, 28 de Mar de 2003 8:24 pm
Assunto: Re: Ainda no meu problema de aliases
verde6666
Enviar e-mail Enviar e-mail
 
ae mauricio,

  --- "Mauricio B. C. Vieira" <mvieira@...> escreveu:
> Percebi que ele tirou todos os espaços nos comentários no arquivo
> (nem tinha pensado nisto).
> Como faço para pular as linhas que tiverm '#'?
>
> Tentei:  /[^\#]/ {s/[[:space:]]//g;}; (se não tiver #, remova os
> espaços) mas não funcionou.

usa a !, que serve para negar um endereço.

   /^#/!s/[[:space:]]//g

traduzindo: nas linhas que comecem por #, NÃO faça o s///
ou ainda: faça o s/// en todas as linhas, EXCETO nas que começam
com #

falou!



=====
--
aurelio

_______________________________________________________________________
Yahoo! Mail
O melhor e-mail gratuito da internet: 6MB de espaço, antivírus, acesso POP3,
filtro contra spam.
http://br.mail.yahoo.com/

#1455 De: catiafm@...
Data: Sex, 28 de Mar de 2003 8:29 pm
Assunto: Pequeno manual de SED em portugues
catiafm@...
Enviar e-mail Enviar e-mail
 
(See attached file: Manual_SED.doc)


Att,

Cátia

#1456 De: "Luciano ES" <luc-groups@...>
Data: Sex, 28 de Mar de 2003 8:47 pm
Assunto: Re: Muitas combinações
lucianolists
Enviar e-mail Enviar e-mail
 
Pelamãedrogada. Nunca que eu vou aprender a fazer uns troço quinem
esse só no estilingue, digo, no sed. Seu programa troca a palavra é por
"," (aspas, vírgula, aspas), mas acho que isso eu posso consertar.
	 Dizer que PHP é toy-language é um tremendo desaforo, mas vou ficar
quietinho hoje.

	 Cacetada...

--
	 Luciano Espirito Santo
	 Santos, SP - Brasil

<-quote-> **************************************************
On 28/03/03 at 17:19, aurelio wrote in 6K:
Assunto/Subject: re: [sed-br] Muitas combinações

>aes,
>êêêê sexta-feira....
>nada como um desafio sed pra animar o espírito :)

********* END OF ORIGINAL MESSAGE *********</-quote->

#1457 De: "Luciano ES" <luc-groups@...>
Data: Sex, 28 de Mar de 2003 8:50 pm
Assunto: Re: Pequeno manual de SED em portugues
lucianolists
Enviar e-mail Enviar e-mail
 
Isso é indireta pra mim, é?
	 :-)

--
	 Luciano Espirito Santo
	 Santos, SP - Brasil

<-quote-> **************************************************
On 28/03/03 at 17:29, catiafm@... wrote in 75K:
Assunto/Subject: [sed-br] Pequeno manual de SED em portugues

>(See attached file: Manual_SED.doc)
>
>Att,
>
>Cátia

********* END OF ORIGINAL MESSAGE *********</-quote->

#1458 De: "Mauricio B. C. Vieira" <mvieira@...>
Data: Sex, 28 de Mar de 2003 8:43 pm
Assunto: Re: Ainda no meu problema de aliases
mbcvieira
Enviar e-mail Enviar e-mail
 
Tem como eu negar tudo, no começo? Ao delimitar as linhas de 1 até o
alias onde eu quero parar isto (1,/aliasnaoexistente/) quero também fazer
isto. algo como 1,/aliasnaoexistente/ & /#/


Eu apliquei isto antes de todos os comandos, mas deu problema com o
shell:

if grep "${LOGIN}" &>/dev/null $ALIASES
     then
       cat $ALIASES | sed "1,/$ALIASNAOEXISTENTE/ {
           /^#/!s/\b${LOGIN}\b//g;
           /^#/!s/[[:space:]]//g;
           /^#/!s/\:,/\:/;
           /^#/!s/,,\+/,/g;
           /^#/!s/,$//;
           /^#/!/\:$/d;
           /^#/!s/\:/\: /;
           /^#/!s/,/, /g;}" > $ALIASES.teste
   fi

Erros:
>           /^#/!s/[[:space:]]//g;
bash: !s/[[: event not found
>           /^#/!s/\:,/\:/;
bash: ,: unrecognized history modifier
>           /^#/!s/,,\+/,/g;
bash: !s/,,\+/,/g: event not found
>           /^#/!s/,$//;
bash: !s/,$//: event not found
>           /^#/!/\:$/d;
bash: !/\: event not found
>           /^#/!s/\:/\: /;
bash: /: unrecognized history modifier
>           /^#/!s/,/, /g;}" > $ALIASES.teste
bash: !s/,/,: event not found



O código abaixo tava funcionando, só que tirava todos os espaços dos
comentários.

   # Remoção do login de um alias qualquer. Se for o único e-mail
   # apontado,
   # o alias deve ser removido.
   # Solução: vários comandos sed encadeados.
   #  s/[[:space:]]//g - remove todos os espaços da linha
   #  s/\b${LOGIN}\b//g - remove o login da linha (o g não custa nada, e
   #     o \b pega somente o login se tiver solto, mas não dentro de outra
   #     palavra
   #     isto evita problemas com logins que são substrings de outros.
   #  s/\:,/\:/ - remove vírgula que pode ficar na frente do ':'
   #     se o login era o primeiro apontado daquele alias
   #  s/,,\+/,/g - remove vírgulas possivelmente colocadas juntas (não
   #     custa nada as redundâncias ,+ nem o g)
   #  s/,$// - remove possível virgula do fim da linha
   #  /\:$/d - apaga alias que ficou sozinho (significa que o login era o
   #  único
   #     daquele alias
   #  s/\:/\: / - bota o espaço de volta depois do alias
   #  s/,/, /g - bota o espaço de volta depois das vírgulas
   #  faz isto até a linha que contiver aliasnaoexistente no começo

   if grep "${LOGIN}" &>/dev/null $ALIASES
     then
       cat $ALIASES | sed "1,/$ALIASNAOEXISTENTE/ {
           s/\b${LOGIN}\b//g;
           s/[[:space:]]//g;
           s/\:,/\:/;
           s/,,\+/,/g;
           s/,$//;
           /\:$/d;
           s/\:/\: /;
           s/,/, /g;}" > $ALIASES.teste
   fi


Acabei de escrever o e-mail e tive a idéia de 'escapar' o !.
Ainda assim, não funcionou:

mvieira@minhamaquina:~/bin/gavri$  if grep "${LOGIN}" &>/dev/null
$ALIASES;     then       cat $ALIASES | sed "1,/$ALIASNAOEXISTENTE/ {
           /^#/\!s/\b${LOGIN}\b//g;
           /^#/\!s/[[:space:]]//g;
           /^#/\!s/\:,/\:/;
           /^#/\!s/,,\+/,/g;
           /^#/\!s/,$//;
           /^#/\!/\:$/d;
           /^#/\!s/\:/\: /;
           /^#/\!s/,/, /g;}" > $ALIASES.teste;   fi
sed: -e expression #1, char 39: Unknown command: ``\''

Valeu pela ajuda =)

On Fri, Mar 28, 2003 at 05:24:02PM -0300, aurelio wrote:
> ae mauricio,
>
>  --- "Mauricio B. C. Vieira" <mvieira@...> escreveu:
> > Percebi que ele tirou todos os espaços nos comentários no arquivo
> > (nem tinha pensado nisto).
> > Como faço para pular as linhas que tiverm '#'?
> >
> > Tentei:  /[^\#]/ {s/[[:space:]]//g;}; (se não tiver #, remova os
> > espaços) mas não funcionou.
>
> usa a !, que serve para negar um endereço.
>
>   /^#/!s/[[:space:]]//g
>
> traduzindo: nas linhas que comecem por #, NÃO faça o s///
> ou ainda: faça o s/// en todas as linhas, EXCETO nas que começam
> com #
>
> falou!
>
>
>
> =====
> --
> aurelio
>
> _______________________________________________________________________
> Yahoo! Mail
> O melhor e-mail gratuito da internet: 6MB de espaço, antivírus, acesso POP3,
filtro contra spam.
> http://br.mail.yahoo.com/
>
> --
> para sair da lista: sed-br-unsubscribe@...
>
> Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html
>

--
Mauricio B. C. Vieira - <mvieira@...>
Estudante de Ciência da Computação - http://twiki.im.ufba.br/~MauricioVieira
Membro do GAVRI - http://gavri.im.ufba.br

#1459 De: Frederico Bohne Espinosa <bohne_listas@...>
Data: Sex, 28 de Mar de 2003 9:22 pm
Assunto: Re: Re: Muitas combinações
tchebohne
Enviar e-mail Enviar e-mail
 
Olha...

		 to rodando aqui a milhao e nao dah erro.. :(

	 Ae embaixo tem os "do" na mesma linha dos "for", coloca eles uma linha
abaixo....

		 Fora isso, nao sei o que pode estar acontecendo..

						 Bohne

On Fri, 2003-03-28 at 17:31, Luciano ES wrote:
>  Opa! Então também vou mandar a resposta pra lista.
>
>  Não consigo rodar o seu script, Frederico. Eu não conheço bem a
> sintaxe do bash, então não consigo saber o que ele quer de mim. Ele diz
> que tem erro na linha 5:
>  s.sh: 5: Syntax error: Bad for loop variable
>  Que variable? "Sub" ou "remelentos"? :-) Eu mudei um pouco a
> formatação do seu script...
> -------------------------------- 8< --------------------------------
> #!/bin/bash
> FRASE="Oi, meu nome é Luciano, eu gosto muito do super-sed"
> NRELEMENTOS=`echo $FRASE | wc -w`
>
> for ((SUB=1;SUB <= "$NRELEMENTOS";SUB++)) do
>  for ((CONTADOR=1;CONTADOR <= "$NRELEMENTOS";CONTADOR++)) do
> 	 if [ $CONTADOR -ge $SUB ]
> 	 then
> 	 echo $FRASE | cut -f$SUB-$CONTADOR -d" "
> 	 fi
>  done
> done
> -------------------------------- >8 --------------------------------
>
>  ... linha 5 aqui é
>  for ((SUB=1;SUB <= "$NRELEMENTOS";SUB++)) do
>
>  Você sabe qual é o problema? Será que eu estraguei alguma coisa?
> Acho que não, porque o original também não funciona. Eu não uso
> bash legítimo, rodo um programinha chamado sh.exe em Windows, que até
> hoje tem rodado scripts bash sem problema. Não lembro onde foi que eu
> peguei. Será que é isso?
>
> --
>  Luciano Espirito Santo
>  Santos, SP - Brasil
>
>
> <-quote-> **************************************************
> On 28/03/03 at 16:54, Frederico BOHNE Espinosa wrote in 3K:
> Assunto/Subject: re: [sed-br] Muitas combinações
>
> > Pois bem.. vou encarar a ira do sr. Moderador. :)
> >Concordo que podemos aprender muito com alguns adendos
> >half-off-topic. :)
> > Entao ae vai minha solucao...
> > Faltou alguma sequencia???
>
> ********* END OF ORIGINAL MESSAGE *********</-quote->
>
>

#1460 De: "Mauricio B. C. Vieira" <mvieira@...>
Data: Sáb, 29 de Mar de 2003 3:56 pm
Assunto: Solução problema de alias
mbcvieira
Enviar e-mail Enviar e-mail
 
Encontrei a solução. Quero compartilhá-la.

Obrigado.


#### Função para remover o usuário do aliases ####
# Agradecimentos a Aurélio <aurelio@...> e a
#  Thobias S. Trevisan <thobias@...>, ambos da lista
#  sed-br@...
removeAliases(){
NEWALIASES="echo /usr/bin/newaliases";
ALIASNAOEXISTENTE="aliasnaoexistente";
SCRIPT_SED=.removealias.sed

   # Remoção do login de um alias qualquer. Se for o único e-mail apontado,
   # o alias deve ser removido.
   # Solução: vários comandos sed encadeados.
   #  1,/$ALIASNAOEXISTENTE/ { - da primeiralinha até a que aparecer o
   #    $ALIASNAOEXISTENTE, faça
   #  /^#/!{ - se a linha não começar com o #, faça
   #  s/[[:space:]]//g - remove todos os espaços da linha
   #  s/\b${LOGIN}\b//g - remove o login da linha (o g não custa nada, e o
   #     \b pega somente o login se tiver solto, mas não dentro de outra palavra
   #     isto evita problemas com logins que são substrings de outros.
   #  s/\:,/\:/ - remove vírgula que pode ficar na frente do ':'
   #     se o login era o primeiro apontado daquele alias
   #  s/,,\+/,/g - remove vírgulas possivelmente colocadas juntas (não custa nada
   #     as redundâncias ,+ nem o g)
   #  s/,$// - remove possível virgula do fim da linha
   #  /\:$/d - apaga alias que ficou sozinho (significa que o login era o único
   #     daquele alias
   #  s/\:/\: / - bota o espaço de volta depois do alias
   #  s/,/, /g - bota o espaço de volta depois das vírgulas
   # Grava este script em $SCRIPT_SED, e depois executa o sed -f

   if grep "${LOGIN}" &>/dev/null $ALIASES
     then
       echo "1,/$ALIASNAOEXISTENTE/ {" > $SCRIPT_SED;
       echo -n ' /^#/!{' >> $SCRIPT_SED;
       echo "
   s/\b${LOGIN}\b//g;
   s/[[:space:]]//g;
   s/\:,/\:/;
   s/,,\+/,/g;
   s/,$//;
   /\:$/d;
   s/\:/\: /;
   s/,/, /g;
  }
}
" >> $SCRIPT_SED
      cat $ALIASES | sed -f $SCRIPT_SED > $ALIASES;
      rm $SCRIPT_SED
      ALTEROU_ALIASES=1;
   fi

   # Se alterou o aliases, dá um newaliases.
   [ "${ALTEROU_ALIASES}" ] && $NEWALIASES;

}
--
Mauricio B. C. Vieira - <mvieira@...>
Estudante de Ciência da Computação - http://twiki.im.ufba.br/~MauricioVieira
Membro do GAVRI - http://gavri.im.ufba.br

#1461 De: caio ferreira <idic@...>
Data: Dom, 30 de Mar de 2003 3:53 pm
Assunto: Re: Re:_script_de_automação
abreufer
Enviar e-mail Enviar e-mail
 
On Thu, 20 Mar 2003 15:14:19 -0300 (ART)
aurelio <aurelio@...> wrote:

> olha, só com sed vc não consegue fazer isso porque você
> precisa da listagem dos arquivos do diretório.
>
> dá pra fazer um shellzinho como:
>
>   echo "<html><h1>Diretório $PWD</h1><ul>"
>   ls -1 | sed 's,.*,<li><a href="&">&</a>,'
>   echo "</ul></html>
>
> ah, mas use o sed porque se usar o ssed pode dar pau

	 O script funcionou :-) !!

	 O que teria que ser alterado no script para que o mesmo vasculha-se dentro de
subdiretorios e coloca-se tudo dentro do arquivo index.html presente no
diretório linux ?!?!?

- linux/
	 - vi/
	 - debian/
	 - emacs/
	 - rede/

	 DEsde já agradeço a atenção

--

[ ]'s

   *******************    .''`.
* idic@...  *  : :'  :
* GNU/Linux Debian   *  `. `'`
   *******************     `-
Gnupg ID 0x01186BE1
Key fingerprint =3D F17E 75C6 CE00 0E09 F63B  71B0 A0D2 FAD9 0118 6BE1


Existe uma única bênção, a fonte e a pedra angular da beatitude - a confiança em
si mesmo

--Sêneca

#1462 De: aurelio <aurelio@...>
Data: Seg, 31 de Mar de 2003 1:16 pm
Assunto: Re: Re:_Muitas_combinações
verde6666
Enviar e-mail Enviar e-mail
 
ae,

  --- Luciano ES <luc-groups@...> escreveu:
> Pelamãedrogada. Nunca que eu vou aprender a fazer uns troço quinem
> esse só no estilingue, digo, no sed.

aprende sim, é só alongar, aquecer, respirar fundo e repetir
o mantra sagrado durante 27 minutos, então a luz dos metacaracteres
entorpecerá sua mente e "there's no spoon" :)


> Seu programa troca a palavra é por "," (aspas, vírgula, aspas),
> mas acho que isso eu posso consertar.

é que no seu primeiro e-mail você pediu uma saída

"assim, com aspas".

mas pode tirá-las do s/// se não quiser.
a vírgula está como opcional no final de uma palavra, para que ela
seja removida quando esta palavra em questão for a última da linha,
mas tb pode ser retirada caso vc deseje que ela fique (palha).


> Dizer que PHP é toy-language é um tremendo desaforo, mas vou ficar
> quietinho hoje.

cara, uma linguagem que tem os operadores === e !== não pode ser
séria :)

mas ser toy não é ser ruim. é bom pra brincar de vez em quando ;)

falou!

=====
--
aurelio

_______________________________________________________________________
Yahoo! Mail
O melhor e-mail gratuito da internet: 6MB de espaço, antivírus, acesso POP3,
filtro contra spam.
http://br.mail.yahoo.com/

#1463 De: "Luciano ES" <luc-groups@...>
Data: Seg, 31 de Mar de 2003 6:01 pm
Assunto: Re: _Muitas_combinações
lucianolists
Enviar e-mail Enviar e-mail
 
Eu nem ia responder porque o assunto já está encerrado, mas estou
trabalhando desde as 7:00 e preciso de uma pausa. Segunda-feira não é
fácil pra ninguém.
	 Em primeiro lugar, Sr. Aurelio Jargas, seu script não funúncia. Chegou
bem perto, mas não rolou. O script do Frederico chegou bem mais perto. Eu
captei a idéia, mas o script bash dele não rodava no meu sh Tabajara.
Então comecei a reescrevê-lo em ZSH (vai falar mal de zsh também???
Hein? Hein?), daí cansei e passei pra PHP. Funúncia que é uma beleza.
Eu até podia publicá-lo aqui, mas o moderador já disse que aqui não
é lista de shell, que aqui não é lugar disso, essas coisas. Talvez eu
entre na tal lista de shell mais tarde. Agora estou ocupado, e com pregui.

>cara, uma linguagem que tem os operadores === e !== não pode
ser
>séria :)

	 Eu nem sabia que tinha esses operadores. Sabia, mas nem lembrava. Nem sei
o que eles fazem, e tô com preguiça de ir lá olhar. Nunca precisei
deles. Mas toda linguagem tem lá suas idiossincrasias. Lembro que Python
tinha várias. Eu lia o manual e balançava a cabeça... Conheço bem
ou razoavelmente PHP, TCL, Perl, Python, Rexx, todas elas têm alguma
coisinha esquisita. Menos VB, que é TODA esquisita!

	 Mas toy language é muita sacanagem. Vai ver você prefere ASP. Se é
pra insultar...

	 Acabou o rango. De volta ao trabalho.

--
	 Luciano Espirito Santo
	 Santos, SP - Brasil

<-quote-> **************************************************
On 31/03/03 at 10:16, aurelio wrote in 3K:
Assunto/Subject: Re: [sed-br] Re:_Muitas_combinações

>> Pelamãedrogada. Nunca que eu vou aprender a fazer uns troço quinem
>> esse só no estilingue, digo, no sed.
>
>aprende sim, é só alongar, aquecer, respirar fundo e repetir
>o mantra sagrado durante 27 minutos, então a luz dos metacaracteres
>entorpecerá sua mente e "there's no spoon" :)
>
>
>> Seu programa troca a palavra é por "," (aspas, vírgula, aspas),
>> mas acho que isso eu posso consertar.
>
>é que no seu primeiro e-mail você pediu uma saída
>
>"assim, com aspas".
>
>mas pode tirá-las do s/// se não quiser.
>a vírgula está como opcional no final de uma palavra, para que ela
>seja removida quando esta palavra em questão for a última da linha,
>mas tb pode ser retirada caso vc deseje que ela fique (palha).
>
>
>> Dizer que PHP é toy-language é um tremendo desaforo, mas vou ficar
>> quietinho hoje.
>
>cara, uma linguagem que tem os operadores === e !== não pode
ser
>séria :)
>
>mas ser toy não é ser ruim. é bom pra brincar de vez em quando ;)

********* END OF ORIGINAL MESSAGE *********</-quote->

#1464 De: "spiffisgod <inaja@...>" <inaja@...>
Data: Ter, 1 de Abr de 2003 3:00 pm
Assunto: RegExp para mascara de valor
spiffisgod
Enviar e-mail Enviar e-mail
 
Olá pessoal,

Fiz a seguinte função em javascript para formatar valores com
separador de milhar:

function maskMilhar(valor) {
    var re, valor ;
    valor = valor.toString();
    re = /(\d+)(\d{3})+,/;
    if ( re.test(valor)) {
      valor = valor.replace(re, "$1.$2,");
      re = /(\d+)(\d{3})+./;
      while (re.test(valor)) valor = valor.replace(re, "$1.$2.");
    }
    return valor ;
}

Ela está funcionando... porém queria saber se tem como melhorá-la
tirando o loop while.

Valeu desde já,

Bruno

mensagens 1435 - 1464 de 5039   Mais antigos  |  < Mais antigos  |  Mais recentes >  |  Mais recentes
mensagens 1435 - 1464 de 5039   Mais antigos  |  < Mais antigos  |  Mais recentes >  |  Mais recentes
Avançado

Copyright © 2010 Yahoo! do Brasil Internet Ltda. Todos os direitos reservados.
Política de Privacidade - Termos do Serviço - Diretrizes - Ajuda