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 ordenar suas mensagens por data? Basta clicar no link da coluna data. Suas preferências serão lembradas para que você não precise fazer isso novamente sempre que retornar.

Mensagens

  Ajuda
Avançado
mensagens 13 - 42 de 5040   Mais antigos  |  < Mais antigos  |  Mais recentes >  |  Mais recentes
mensagens 13 - 42 de 5040   Mais antigos  |  < Mais antigos  |  Mais recentes >  |  Mais recentes
mensagens: Exibir resumo de mensagens Classificar por data ^  
#13 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Qua, 13 de Out de 1999 12:59 pm
Assunto: showlink
aurelio@...
Enviar e-mail Enviar e-mail
 
ontem fiz um carinha para mostrar os links de um sítio de
internet local. pode ser útil para quem desenvolve em html.
e é útil pra quem quer aprender sed também pois é simples.

a cópia original está em
http://www.conectiva.com.br/~aurelio/programas/bash


#!/bin/sh
# showlink
# 19991012 <aurelio@...> ** 1a versão
#
# a bash+find+egrep+sed utility to webdesigners.
# showlink shows all kind of links on a web site.
# it gets all *html pages above the current dir.
# you can parse its output to find lost links, do
# statistics, find errors, or just for curiosity &:)
#
# a quick example:
# cp showlink /bin ; cd /home/httpd/html ; showlink -a

Usage(){ echo "$0 OPTION   (just one option)

     -a,--all      all links found
     -c,--chk      check for incorrect links
     -d,--dir      links that point to directories
     -e,--email    links that point do emails (mailto:)
     -f,--ftp      links that point do external pages (ftp://)
     -h,--http     links that point do external pages (http://)
     -i,--image    links that point do images
     -m,--music    links that point do music files
     -p,--page     links on the same page
     -z,--zzz      links marked with ??? (todo link)
        --help     this help

UPPERCASE single option (-[ACDEFHIMPZ]) give the output without the
filename. i.e. \"`basename $0` -A\"
" ; exit 1
}

[ "$1" ] || Usage
OPT=$1


### the defaults for full output - do NOT edit!

# the delimiter beetween the filename and the link found
D=':'

# options passed to the egrep command. this is related to
# case of the option passed on the command line. lowercase
# is the default: show filename (H option). uppercase
# supresses it.
EGREP_OPTS='-His'

# the egrep pattern is only 'href=' and not '<a[^I ]\+href='
# or something to support multiline like <a
# href="link.html", and also, the "" are not included to you
# see when you missed them on the html source (all the line
# will appear on the output).
EGREP_PATT='href='

# this filter parses the egrep output to only extract the
# link itself: the string beetween the "".
EGREP_FILTER="s§\(^[^:]*\):.*href=\"[    ]*\([^ \"]*\)[  ]*\".*§\1$D\2§"

# this filter is the action related to the option passed on
# the command line. here is the "sedmagic". 'p' is the default,
# and show all links. the true magics are on the 'case' below.
SEDMAGIC='p'



# let's see if we have a UPPER option and set the filters to it
OPT2=`echo ${OPT#-} | sed 'y/ACDEFHIMPZ/acdefhimpz/'`
if [ "${OPT#-}" != "$OPT2" ]
then OPT=-$OPT2
      D='^'
      EGREP_OPTS='-is'
      EGREP_FILTER="s§^.*href=\"[     ]*\([^ \"]*\)[  ]*\".*§\1§"
fi


# sedmagics here!
case $OPT in
   -a|--all  ) :                                       ;; # it uses the defaults
   -c|--chk  ) SEDMAGIC="\§${D}/[^/]§p"                ;; # TODO: more checks
   -d|--dir  ) SEDMAGIC="\§${D}[^.#]\+$§p"             ;;
   -e|--email) SEDMAGIC="\§${D}mailto:§p"              ;;
   -f|--ftp  ) SEDMAGIC="\§${D}ftp://§p"               ;;
   -h|--http ) SEDMAGIC="\§${D}http://§p"              ;;
   -i|--image) SEDMAGIC='\§\.\(jpg\|gif\|png\|bmp\)$§p';;
   -m|--music) SEDMAGIC='\§\.\(ra\|rm\|mp3\|wav\)$§p'  ;;
   -p|--page ) SEDMAGIC='\§#§p'                        ;;
   -z|--zero ) SEDMAGIC='\§???§p'                      ;;
            *) Usage                                   ;;
esac

FILES=`find . -type f -name "*html"`


# and after all this preparations, the brain is here
# ah! no support for spaced filenames, but who cares?
for F in $FILES
do egrep $EGREP_OPTS $EGREP_PATT $F |
    sed "$EGREP_FILTER" |
    sed -n "$SEDMAGIC"
done



--
s/&:(/&>(/g,aurelio@...
http://www.conectiva.com.br/~aurelio
"indignação_movendo_a_nação"<ESC>:wq

#14 De: Eliphas Levy Theodoro <eliphas@...>
Data: Qua, 13 de Out de 1999 4:36 pm
Assunto: Re: Licq2centerICQ
eliphas@...
Enviar e-mail Enviar e-mail
 
Em 12/10/99 às 23:38, Ademar de Souza Reis Jr. escreveu:

> Hi All.

êrba. ':)

> Comecei a usar o centerICQ (cliente ICQ pra console textual), mas queria
> converter todos os meus UINs jah existentes do Licq pro arquivo de
> contacts do centerICQ.
>
> Fiz o seguinte script, mas tenho certeza que isso podia ser feito via sed
> ou sei lah oq...

bom, aproveitando, também fiz um pra conversão licq -> zicq:

licq2zicq.sh:
------------------8<======================================
#!/bin/sh
LICQ_DIR=~/.licq/conf
ZICQ_RC=~/.zicqrc
cd $LICQ_DIR
for uin in [0-9]*;do
     echo -n $uin
     grep -i alias $uin
done | \
sed 's/\([0-9]*\).*= \(.*\)/\1 \2/ ; s/^I/_/g' | \
sort -n >> $ZICQ_RC
==================>8--------------------------------------

ou seja, busca no diretório do licq todos os arquivos começando com números;
acha a linha 'alias' dentro de cada um deles;
forma a linha 'UIN alias= nome';
joga isso tudo em um único sed;
ele separa os números (uin) no início, e o nome após o igual;
também retira os espaços e substitui por sublinhas;
substitui todos os tabs por espaços;
no final, ordena pelo UIN e joga no final do .zicqrc.

só lembre-se de trocar o ^I acima por um TAB verdadeiro. (no vi, ^VTAB)

pra fazer pro centericq, deve ser preciso mudar pouca coisa.

--
Conectiva - Theodoro, Eliphas Levy | \
sed 's/\([A-z]*\) - \([A-z]*,\) \([A-z]*\) \([A-z]*\)/\3 \4 \2 \1/'
Você moveu seu mouse. Reinicie para que as alterações tenham efeito.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCM/U d--- s:- a23 C+++ UL+++$ P+>$ L++> E--- W- N- !o !K w--- O- M- V?
PS+ PE Y-- PGP t+ 5+ X+ R+ tv- b DI+ D+++ G e-- h+ r- y+
------END GEEK CODE BLOCK------

#15 De: "Ademar de Souza Reis Jr." <ademarjr@...>
Data: Qui, 14 de Out de 1999 3:56 am
Assunto: Re: Licq2centerICQ
ademarjr@...
Enviar e-mail Enviar e-mail
 
Em 13/10/99 às 10:09, aurelio marinho jargas - ctba escreveu:

>
> @ 12/10, Ademar de Souza Reis Jr.:
> > Comecei a usar o centerICQ (cliente ICQ pra console textual), mas queria
> > converter todos os meus UINs jah existentes do Licq pro arquivo de
> > contacts do centerICQ.
> >
> > Fiz o seguinte script, mas tenho certeza que isso podia ser feito via sed
> > ou sei lah oq...
> >
> > # inicio
> > > ~/.center/contactlist
> > for i in *.uin
> > do
> >         a=`grep Alias "$i" | cut -d " " -f 3`
> >         b=`echo $i | cut -d . -f 1 | grep [0-9]`
> >         echo -n $a >> ~/.center/contactlist
> >         echo -e \\t \\t $b >> ~/.center/contactlist
> > done
> > # fim
>
> como somente com o sed não é possível obter o nome do
> arquivo via comandos para colocá-lo dentro do roteiro sed,
> tem-se que usa o for de qualquer jeito.
>
> for i in *.uin
> do sed -n "s§Alias = \(.*\)§\1  $i§p" >> ~/.center/contactlist
> done

a linha do sed nao funcionou.

faltou colocar o nome do arquivo (no caso $i) antes do redirecionamento :)
devia ser:

do sed -n "s§Alias = \(.*\)§\1                $i§p" $i >> \
~/.center/contactlist

outro detalhe eh q aparece o .uin na linha de saida, eh isso tem q sair.

Saiu algo do tipo

Ademar       xxxxx.uin

Nao tive tempo pra mexer nem pra entender direito oq isso faz, entao pode
ter algo de falta de atencao da minha parte :)


> * o caractere § é o delimitador do s§isso§aquilo§

Pergunta idiota:

De onde tiro o caractere "§" ?

Nao sei seh pq to com muuuito sono, mas nao to vendo ele aqui no meu
teclado :)
(us-acentos - sem teclas win95)

> > Alguem tem a solucao em uma linha apenas? :)
>
> 3 tá bom?  &:)

Dah pra quebrar o galho :P

[]'s
==============================================
Ademar de Souza Reis Jr.
http://members.xoom.com/ademarjr
Estudante de Informatica / Bolsista PET - UFPR
Happy Linux Home User #71790
ademar@...
Curitiba - PR - Brasil

--
"Se NT é a resposta, você não entendeu a pergunta"

#16 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Qui, 14 de Out de 1999 12:48 pm
Assunto: Re: Licq2centerICQ
aurelio@...
Enviar e-mail Enviar e-mail
 
> > for i in *.uin
> > do sed -n "s§Alias = \(.*\)§\1  $i§p" >> ~/.center/contactlist
> > done
>
> a linha do sed nao funcionou.
>
> faltou colocar o nome do arquivo (no caso $i) antes do redirecionamento :)

é verdade. sempre me esqueço disso &:)

> do sed -n "s§Alias = \(.*\)§\1                $i§p" $i \
> ~/.center/contactlist
>
> outro detalhe eh q aparece o .uin na linha de saida, eh isso tem q sair.
> Saiu algo do tipo
> Ademar       xxxxx.uin
>
> Nao tive tempo pra mexer nem pra entender direito oq isso faz, entao pode
> ter algo de falta de atencao da minha parte :)

não, é coloquei simplesmente $i, que é o nome do arquivo,
para tirar o .uin do final, basta por ${i%.uin}, então fica

do sed -n "s§Alias = \(.*\)§\1        ${i%.uin}§p" $i \
~/.center/contactlist


> > * o caractere § é o delimitador do s§isso§aquilo§
> Pergunta idiota:
> De onde tiro o caractere "§" ?

Alt da direita + =


> > > Alguem tem a solucao em uma linha apenas? :)
> > 3 tá bom?  &:)
> Dah pra quebrar o galho :P

&:)

--
s/&:(/&>(/g,aurelio@...
http://www.conectiva.com.br/~aurelio
"indignação_movendo_a_nação"<ESC>:wq

#17 De: Ricardo <ricardo@...>
Data: Qui, 14 de Out de 1999 11:58 am
Assunto: Re: help
ricardo@...
Enviar e-mail Enviar e-mail
 
Preciso recuperar por exemplo a linha 10 de um arquivo como faço?


Ricardo Soares Guimarães
mailto:ricardo@...
mailto:ricardo@...
http://www.universolinux.com.br
http://www.opensystem.org.br

"A certeza de que vou morrer é a maior dádiva que recebi. Porque assim,
eu sou obrigado a aproveitar cada segundo de minha vida."

#18 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Qui, 14 de Out de 1999 2:06 pm
Assunto: obter linha n de um arquivo
aurelio@...
Enviar e-mail Enviar e-mail
 
da próxima vez, faça um assunto mais descritivo para
facilitar uma busca no histórico


> Preciso recuperar por exemplo a linha 10 de um arquivo como faço?


há 2 maneiras:

sed -n 10p         # corta a saída padrão e imprime o padrão
sed 10!d           # corta tudo menos o padrão

1º caso:
-------
-n   suprime a saída padrão, só o comando p imprimirá algo
10p  o p imprime e aceita um endereçamento (no caso a linha 10)

esse endereçamento pode ser

10            somente a linha 10
1,10          da linha 1 a 10
/padrão/,10   da 1ª linha que tiver "padrão" até a 10



2ª caso:
-------
10  endereçamento
!   não faça o comando seguinte (negação)
d   apague a linha corrente

então fica, "na linha 10, não apague", ou melhor
"fora a linha 10, apague"


--
s/&:(/&>(/g,aurelio@...
http://www.conectiva.com.br/~aurelio
"indignação_movendo_a_nação"<ESC>:wq

#19 De: Eliphas Levy Theodoro <eliphas@...>
Data: Sex, 15 de Out de 1999 10:46 am
Assunto: Re: obter linha n de um arquivo
eliphas@...
Enviar e-mail Enviar e-mail
 
Em 14/10/99 às 12:06, aurelio marinho jargas - ctba escreveu:

> 1º caso:
> -------
> -n   suprime a saída padrão, só o comando p imprimirá algo
> 10p  o p imprime e aceita um endereçamento (no caso a linha 10)
>
> esse endereçamento pode ser
>
> 10            somente a linha 10
> 1,10          da linha 1 a 10
> /padrão/,10   da 1ª linha que tiver "padrão" até a 10

só complementando, pode ser também por 'passos', ou seja:

1~2    imprime somente as linhas ímpares, começando na primeira;
10~10  imprime a décima, vigésima, etc...
5~20   vai imprimir a quinta, a vigésima quinta, a quadragésima quinta...

nessa parte de 'steps', tá até bem explicadinho no 'man sed'. ':)

--
Conectiva - Theodoro, Eliphas Levy | \
sed 's/\([A-z]*\) - \([A-z]*,\) \([A-z]*\) \([A-z]*\)/\3 \4 \2 \1/'
Você moveu seu mouse. Reinicie para que as alterações tenham efeito.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCM/U d--- s:- a23 C+++ UL+++$ P+>$ L++> E--- W- N- !o !K w--- O- M- V?
PS+ PE Y-- PGP t+ 5+ X+ R+ tv- b DI+ D+++ G e-- h+ r- y+
------END GEEK CODE BLOCK------

#20 De: "Ademar de Souza Reis Jr." <ademarjr@...>
Data: Sáb, 16 de Out de 1999 4:15 pm
Assunto: PIPE com saida de erro padrao - como?
ademarjr@...
Enviar e-mail Enviar e-mail
 
Taih uma coisa q eu ateh hoje nao descobri como se faz....

Tudo bem q nao eh relacionado diretamente ao sed, mas achei q era a melhor
lista pra se fazer esse tipo de pergunta.

Alguem tem a solucao? Se possivel, como direcionar ambos (saida e erro
padrao) prum pipe?

Tipo

gcc -foo.c -o bar | grep xxxx

[]'s
==============================================
Ademar de Souza Reis Jr.
http://members.xoom.com/ademarjr
Estudante de Informatica / Bolsista PET - UFPR
Happy Linux Home User #71790
ademar@...
Curitiba - PR - Brasil

--
"Se NT é a resposta, você não entendeu a pergunta"

#21 De: Wanderlei Antonio Cavassin <cavassin@...>
Data: Dom, 17 de Out de 1999 2:12 am
Assunto: Re: PIPE com saida de erro padrao - como?
cavassin@...
Enviar e-mail Enviar e-mail
 
On Sat, 16 Oct 1999, Ademar de Souza Reis Jr. wrote:
>
> Taih uma coisa q eu ateh hoje nao descobri como se faz....
>
> Tudo bem q nao eh relacionado diretamente ao sed, mas achei q era a melhor
> lista pra se fazer esse tipo de pergunta.
>
> Alguem tem a solucao? Se possivel, como direcionar ambos (saida e erro
> padrao) prum pipe?
>
> Tipo
>
> gcc -foo.c -o bar | grep xxxx
>

gcc -foo.c -o bar | grep xxx 2>&1

assim a saida 2 (stderr) tambem vai para a saida 1 (stdout)

Wanderlei Antonio Cavassin
Conectiva

#22 De: "Ademar de Souza Reis Jr." <ademarjr@...>
Data: Dom, 17 de Out de 1999 2:55 am
Assunto: Re: PIPE com saida de erro padrao - como?
ademarjr@...
Enviar e-mail Enviar e-mail
 
Hoje, às 00:12, Wanderlei Antonio Cavassin escreveu:

> On Sat, 16 Oct 1999, Ademar de Souza Reis Jr. wrote:
> >
> > Taih uma coisa q eu ateh hoje nao descobri como se faz....
> >
> > Tudo bem q nao eh relacionado diretamente ao sed, mas achei q era a melhor
> > lista pra se fazer esse tipo de pergunta.
> >
> > Alguem tem a solucao? Se possivel, como direcionar ambos (saida e erro
> > padrao) prum pipe?
> >
> > Tipo
> >
> > gcc -foo.c -o bar | grep xxxx
> >
>
> gcc -foo.c -o bar | grep xxx 2>&1
>
> assim a saida 2 (stderr) tambem vai para a saida 1 (stdout)
>

Eu jah havia tentado isso e nao funcionou.
Se eu nao estou errado, assim vc tah jogando o erro do grep pra stdout,
mas eu quero jogar o erro do gcc na entrada do grep.

Oq eu queria era o equivalente a:

[ademar@optimus ademar]$ /usr/bin/gcc foo.c -o bar &> erro
[ademar@optimus ademar]$ cat erro | grep xxxx
[ademar@optimus ademar]$

OPA! Caiu um raio na minha cabeca agora! :)

[ademar@optimus ademar]$ /usr/bin/gcc foo.c -o bar 2>&1 | grep such
gcc: foo.c: No such file or directory
[ademar@optimus ademar]$

[ademar@optimus ademar]$ /usr/bin/gcc foo.c -o bar 2>&1 | grep -v such
gcc: No input files
[ademar@optimus ademar]$

ah... Agora sim! :)

De qquer modo, valeu a ajuda, foi soh eu entender oq tava acontecendo pra
sair a solucao correta. :)

[]'s
==============================================
Ademar de Souza Reis Jr.
http://members.xoom.com/ademarjr
Estudante de Informatica / Bolsista PET - UFPR
Happy Linux Home User #71790
ademar@...
Curitiba - PR - Brasil

--
"I use Linux because reboots are for hardware upgrades"

#23 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Qui, 21 de Out de 1999 1:27 pm
Assunto: ordem das alternativas
aurelio@...
Enviar e-mail Enviar e-mail
 
não é sed, é uma ER em python, mas também se aplica ao sed, sobre a
importância da ordem em que se coloca as alternativas, pois sempre a
primeira encontrada é a que vale:

tipo:
echo ab | sed 's§\(a\|b\)§\1§'  ---> a
echo ab | sed 's§\(b\|a\)§\1§'  ---> b

as duas casam OU 'a' OU 'b', mas a ordem dentro dos ()s importa.

----------------------------------------------------------------------

com prazer!

essa é a string na qual será feita a pesquisa:
entry = 'parted-0.0.8-pre1/po/parted.pot'

aqui estão as 2 REs:
re.match('parted-([.0-9]+[a-z]?|[.0-9]+-b[0-9]+|[.0-9]+-pre[0-9]+)',
entry).group(1)
re.match('parted-([.0-9]+-b[0-9]+|[.0-9]+-pre[0-9]+|[.0-9]+[a-z]?)',
entry).group(1)


pelo que entendi, aqui está se explicando a importância da ordem em
que as alternativas são colocadas, porque as 2 REs são idênticas,
apenas mudando a ordem em que aparecem as 3 alternativas
dentro do primeiro agrupamento de (isso|aquilo|outro)
o cano '|' lê-se 'ou' - e com isso o resultado se altera, pois ele
casa sempre a primeira que encontrar.


ele casa a string 'parted-'
depois alternativamente ele pode casar:

ou [.0-9]+[a-z]?     '.' ou núm. (1 ou mais), e opcional 1 letra
ou [.0-9]+-b[0-9]+   '.' ou núm. (1 ou mais), '-b'  , núm. (1 ou mais)
ou [.0-9]+-pre[0-9]+ '.' ou núm. (1 ou mais), '-pre', núm. (1 ou mais)

o group(1) serve para pegar o conteúdo do agrupamento 1 (como o \1 no
sed)

e os resultados são
'0.0.8' e '0.0.8-pre1'
o primeiro casando com a primeira alternativa acima (núms e letra
opcional) e o segundo casando com a terceira alternativa acima (núms,
pre- e núms)



re.match('parted-([.0-9]+[a-z]?|[.0-9]+-b[0-9]+|[.0-9]+-pre[0-9]+)',
entry).group(1)
resultado: '0.0.8'

re.match('parted-([.0-9]+-b[0-9]+|[.0-9]+-pre[0-9]+|[.0-9]+[a-z]?)',
entry).group(1)
resultado: '0.0.8-pre1'


só é meio misturado, mas é fácil não?



> depois me explica!
>
> On Wed, 20 Oct 1999, aurelio marinho jargas - ctba wrote:
>
> >
> > e olhando a 1ª vista parece ser complicadíssima, mas só usa funções
> > básicas como classes e alternativas. isso é muito massa &:)
> >
> > > Expressao regular bonitinha...
> > > Cavassin
> >
> > > >>> entry = 'parted-0.0.8-pre1/po/parted.pot'
> > > >>> re.match('parted-([.0-9]+[a-z]?|[.0-9]+-b[0-9]+|[.0-9]+-pre[0-9]+)',
entry).group(1)
> > > '0.0.8'
> > > >>> re.match('parted-([.0-9]+-b[0-9]+|[.0-9]+-pre[0-9]+|[.0-9]+[a-z]?)',
entry).group(1)
> > > '0.0.8-pre1'


--
s/&:(/&>(/g,aurelio@...
http://www.conectiva.com.br/~aurelio
"indignação_movendo_a_nação"<ESC>:wq
------------------------------------
NOVA! http://www.brasmidia.com/dumbs

#24 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Seg, 25 de Out de 1999 8:57 pm
Assunto: sed para extrair email
aurelio@...
Enviar e-mail Enviar e-mail
 
repensei aquele sed que pega o email de um cara do cabeçalho da
mensagem (filtro_suporte) e _acho_ que cheguei num sed genérico o
suficiente e consistente (e bem mais esperto e entendível):

echo "  \"au-re.lio\" <(a_u-re.lLio@cNN_-nc.com)> lala" |
sed "s§.*[^-A-z._]\([-A-z._]\+@[-A-z._]\+\).*§\1§"

assumindo que os caracteres válidos para usuário e domínio são
-A-z._


dá uma testada aí por favor (só não quebre o vidro do monitor) &;)


--
s/&:(/&>(/g,aurelio@...
http://www.conectiva.com.br/~aurelio
"indignação_movendo_a_nação"<ESC>:wq
------------------------------------
NOVA! http://www.brasmidia.com/dumbs

#25 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Seg, 1 de Nov de 1999 7:43 pm
Assunto: exercicio 1
aurelio@...
Enviar e-mail Enviar e-mail
 
a aí moçada.

seguinte, para desenvolvermos nosso conhecimento em sed, vou
"tentar" postar toda semana (ou a cada 2 semanas) exercícios em sed
para exercitar seus neurônios. &:)

como sempre, o tópico é sed e ERs. e como sempre, pode haver inúmeras
maneiras de se fazer a mesma coisa, como o clássico: "imprimir as
primeiras 10 linhas do arquivo tal?"

vamos tentar começar com uns menos complexos e depois vamos vendo
conceitos mais avançados.

quem conseguir alguma resposta, poste para a lista e vamos discuti-la.
ganha a resposta:

- que for mais específica e consistente
- que utilizar menos caracteres
- que funcionar &:)


EXERCICIO 1:

das URLs, uma por linha:
http://www.conectiva.com.br
ftp://caicom.com/pub/linux
http://linux.org
http://www.redhat.com

extrair o nome da "empresa" ou instituição de cada uma. o resultado
será:

conectiva
caicom
linux
redhat

para tornar as coisas mais quentes, sua expressão NÃO deve casar essas
entradas:

clique <a href="http://www.seumala.com.br">aqui</a>.
/var/www/www.errado.com
veja://errou.org
ftp://erroufeiocom
http:/errado.com.br
http://com



boa sorte!


--
s/&:(/&>(/g,aurelio@...
http://www.conectiva.com.br/~aurelio
"indignação_movendo_a_nação"<ESC>:wq
------------------------------------
NOVA! http://www.brasmidia.com/dumbs

#26 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Ter, 9 de Nov de 1999 7:36 pm
Assunto: sed macho fazendo o que o fmt não faz (fwd)
aurelio@...
Enviar e-mail Enviar e-mail
 
arquivo "sed-macho.sh" anexado pros curiosos


[~] . sed-macho.sh
[~] echo seu mala | Direitiza                                           seu mala
[~] echo seu mala | Centraliza
                                     seu mala
[~] echo seu mala | Esquerdiza
seu mala
[~] echo seu mala | Verticaliza
s
e
u

m
a
l
a

[~] echo seu mala | Verticaliza | Centraliza
                                        s
                                        e
                                        u

                                        m
                                        a
                                        l
                                        a






--
s/&:(/&>(/g,aurelio@...
http://www.conectiva.com.br/~aurelio
"indignação_movendo_a_nação"<ESC>:wq
------------------------------------
NOVA! http://www.brasmidia.com/dumbs

#27 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Qui, 25 de Nov de 1999 2:57 pm
Assunto: curso de sed em real audio
aurelio@...
Enviar e-mail Enviar e-mail
 
coloquei disponível, um resumo do resumos do que foram os cursos de
sed para funcionários da conectiva em outubro de 1999.

para ouvir e absorver &:)
http://www.conectiva.com.br/~aurelio/sed


--
s/:(/:)/;s/:(/:|/;s/:(/>(/,http://www.conectiva.com.br/~aurelio
${linux/gui/},ctrl+a],http://www.brasmidia.com/dumbs<esc>:wq

#28 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Sex, 26 de Nov de 1999 5:43 pm
Assunto: velocidade
aurelio@...
Enviar e-mail Enviar e-mail
 
consideração interessante sobre a velocidade.

s/[^,]*://

normal.

s/,[^,]*:/,/

este é mais rápido pois de cara, ele já casa uma vírgula, e passa
para a próxima parte, eliminando o trabalho do * de ficar tentando
casar nos caracteres que vêm antes da vírgula.

---------------------------------------------------------------


Date: Fri, 26 Nov 1999 15:40:13 +0000
From: Matthew Winn <matthew@...>
To: VIM <vim@...>
Subject: [vim] Re: Substitute

On Fri, Nov 26, 1999 at 04:29:50PM +0100, Andrzej M. Ostruszka wrote:
> :s/[^,]*://
>
> You're not saying what those strings are composed of so I suppose that
> the answer is "delete non-comma string in front of colon".

     :s/,[^,]*:/,/

(Considerably faster.)

--
Matthew Winn (matthew@...)

#29 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Sex, 26 de Nov de 1999 5:47 pm
Assunto: back reference
aurelio@...
Enviar e-mail Enviar e-mail
 
até hoje não encontrei uma tradução legal para "back
reference". alguém tem alguma sugestão?


para quem não sabe/lembra, isso é o \1, \2

tipo:

\(eu\)\1
   casa 'eueu'

s/eu \(não\)/você \1/
   troca 'eu não' por 'você não'


back reference é como uma "referência retroativa" ou coisa parecida,
pois primeiro você deve marcar a ER com os ()s e depois você a
referencia usando o \1

alguém?


--
s/:(/:)/;s/:(/:|/;s/:(/>(/,http://www.conectiva.com.br/~aurelio
${linux/gui/},ctrl+a],http://www.brasmidia.com/dumbs<esc>:wq

#30 De: Eliphas Levy Theodoro <eliphas@...>
Data: Sex, 26 de Nov de 1999 5:51 pm
Assunto: Re: back reference
eliphas@...
Enviar e-mail Enviar e-mail
 
Hoje, às 15:47, aurelio marinho jargas - ctba escreveu:

>
> até hoje não encontrei uma tradução legal para "back
> reference". alguém tem alguma sugestão?

hmmm ?:/

pós-referência ?

tut tut tut tut tut ...

--
echo Conectiva - Theodoro, Eliphas Levy |
sed 's/\([A-z]*\) - \([A-z]*,\) \([A-z]*\) \([A-z]*\)/\3 \4 \2 \1/'
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12 GCM/U d--- s:- a23 C+++ UL+++$ P+>$ L++> E--- W- N- !o !K w---
O- M- V?  PS+ PE Y-- PGP t+ 5+ X+ R+ tv- b DI+ D+++ G e-- h+ r- y+
------END GEEK CODE BLOCK------
Quem gosta de homem é gay, mulher gosta é de dinheiro.
Venha para o Grupo Brasil: http://www.lcg.ufrj.br/seti/

#31 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Sex, 26 de Nov de 1999 6:08 pm
Assunto: Re: back reference
aurelio@...
Enviar e-mail Enviar e-mail
 
> > até hoje não encontrei uma tradução legal para "back
> > reference". alguém tem alguma sugestão?
>
> hmmm ?:/
>
> pós-referência ?
>
> tut tut tut tut tut ...

pô, mas pós referência é o contrário!
ele faz uma referência anterior e não pós...

retroativa é bem isso, mas êta palavrinha difícil de lembrar...

--
s/:(/:)/;s/:(/:|/;s/:(/>(/,http://www.conectiva.com.br/~aurelio
${linux/gui/},ctrl+a],http://www.brasmidia.com/dumbs<esc>:wq

#32 De: Eliphas Levy Theodoro <eliphas@...>
Data: Sex, 26 de Nov de 1999 6:15 pm
Assunto: Re: back reference
eliphas@...
Enviar e-mail Enviar e-mail
 
Hoje, às 16:08, aurelio marinho jargas - ctba escreveu:

> > > até hoje não encontrei uma tradução legal para "back
> > > reference". alguém tem alguma sugestão?
> >
> > pós-referência ?
>
> pô, mas pós referência é o contrário!
> ele faz uma referência anterior e não pós...
>
> retroativa é bem isso, mas êta palavrinha difícil de lembrar...

sim, retroativa é a mais certa... mas o que é uma pós referência ? uma
referência feita DEPOIS, ou seja, está referenciando algo ANTERIOR...

acho que não estou viajando.

pra bom entendedor, me pa ba. ':)

--
echo Conectiva - Theodoro, Eliphas Levy |
sed 's/\([A-z]*\) - \([A-z]*,\) \([A-z]*\) \([A-z]*\)/\3 \4 \2 \1/'
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12 GCM/U d--- s:- a23 C+++ UL+++$ P+>$ L++> E--- W- N- !o !K w---
O- M- V?  PS+ PE Y-- PGP t+ 5+ X+ R+ tv- b DI+ D+++ G e-- h+ r- y+
------END GEEK CODE BLOCK------
Quem gosta de homem é gay, mulher gosta é de dinheiro.
Venha para o Grupo Brasil: http://www.lcg.ufrj.br/seti/

#33 De: Luciano Baretta Mandryk <baretta@...>
Data: Seg, 29 de Nov de 1999 2:46 pm
Assunto: sed macho para o casamento de strings
baretta@...
Enviar e-mail Enviar e-mail
 
Dae pessoal:

   Muitos já se depararam com a necessidade de casar
strings entre aspas, como o "conteudo" de um printf:

	 printf("blah blah blah]\n");

   Até aí tudo bem. O problema aparece quando há outras aspas
dentro da string, como no exemplo abaixo:

	 printf("esta string tem \"aspas\" dentro dela");

   Quem já passou por isso sentiu a dificuldade na carne :-)
   Nesse caso, em que só há uma string a casar na linha, o
nosso velho amigo guloso .* pode ser usado, mas quando há
mais strings, aí o bicho pega mesmo! (pega os caracteres
entre as duas strings, que não deveriam ser casados!) :-)

printf ("--->\"x\"<--- "); printf ("--->\"y\"<---\n");

   No exemplo acima, um sed 's/".*"/XXXX/' resultaria em:

printf (XXXX);

quando o que a gente gostaria era ter:

printf (XXXX); printf(XXXX);

   Bom, a expressão regular (ER) que casa com strings que tem
aspas escapeadas dentro não é fácil de ser "pensada", mas
depois de se entender a linha de pensamento, fica fácil.

   Então, vamos lá! O segredo é ter uma expressão regular que
case com qualquer caracter que não seja aspa, mas que também
case com uma aspa escapeada, \" .

1. Uma ER que casa com qualquer caracter diferente de aspas:
	 [^"]

2. Uma ER que casa com \":
	 \"

NOTA: eu sei que o certo seria \\", porque a \ tem valor
especial. Eu estou passando por cima disso, para facilitar o
entendimento das ERs, além do fato de que ERs são
artifícios teóricos e, conequentemente, "independentes
de implementação" :-)

3. Uma ER que case com um caracter diferente de ", mas que
case com o \" (uma simples concatencação com | de duas ERs):
	 (\") | ([^"])

4. Uma ER para casar com uma seqüência de caracteres
diferentes de ", mas com \" dentro dela:
	 ( (\") | ([^"]) )*

5. Para finalizar, vamos casar as aspas iniciais:
	 " ( (\") | ([^"]) )* "

RACIOCÍNIO:

	 ER1 = "                casa uma "
	 ER2 = [^"]             casa um caracter != "
	 ER3 = \"               casa um \"
	 ER4 = ER3 | ER2        casa (c != ") ou \"
	 ER5 = ER4*        casa 0 ou mais ER4
	 ER6 = ER1 ER5 ER1      casa ER5 entre ER1s

   A ER que colocariamos em um sed macho para que ele faça o
que a gente quer é:

	 "\(\(\\"\)\|\([^"]\)\)*"

   O sed macho ficaria:

	 sed -e 's/"\(\(\\"\)\|\([^"]\)\)*"/STRING/g'

NOTA: o "g" no final é para que ele substitua todas as
"...\"..." da frase por STRING, não somente a primeira ;-)

Espero que isso tire a dor de cabeça de muita
gente... :-)))

[]'s

===================================
       Luciano Baretta Mandryk
-----------------------------------
      baretta@...
     mandrius@...
        lbm96@...
-----------------------------------
  Registered Linux User no. 115.666
===================================
"Principio da Recursividade: Para
  entender o principio da recursividade, eh
  necessario entender primeiro o principio
  da recursividade."

#34 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Seg, 29 de Nov de 1999 2:57 pm
Assunto: Re: sed macho para o casamento de strings
aurelio@...
Enviar e-mail Enviar e-mail
 
@ 29/11, Luciano Baretta Mandryk:
>   Até aí tudo bem. O problema aparece quando há outras aspas
> dentro da string, como no exemplo abaixo:
>
>  printf("esta string tem \"aspas\" dentro dela");


massa. essa é bem útil mesmo.


> 3. Uma ER que case com um caracter diferente de ", mas que
> case com o \" (uma simples concatencação com | de duas ERs):
>  (\") | ([^"])


só uma economia de quatro caracteres (8 no sed):
a alternação tem precedência pela concatenação, então os parênteses
para agrupar as duas ERs acima citadas não são necessários:
          \"|[^"]


>   O sed macho ficaria:
>
>  sed -e 's/"\(\(\\"\)\|\([^"]\)\)*"/STRING/g'

     O sed + macho ainda ficaria: &;)
 	 sed -e 's/"\(\\"\|[^"]\)*"/STRING/g'



> NOTA: o "g" no final é para que ele substitua todas as
> "...\"..." da frase por STRING, não somente a primeira ;-)

ah tá, seu G.  &:)




--
s/:(/:)/;s/:(/:|/;s/:(/>(/,http://www.conectiva.com.br/~aurelio
${linux/gui/},ctrl+a],http://www.brasmidia.com/dumbs<esc>:wq

#35 De: Eliphas Levy Theodoro <eliphas@...>
Data: Seg, 29 de Nov de 1999 4:07 pm
Assunto: Re: sed macho para o casamento de strings
eliphas@...
Enviar e-mail Enviar e-mail
 
Hoje, às 12:57, aurelio marinho jargas - ctba escreveu:

> @ 29/11, Luciano Baretta Mandryk:

> >   Até aí tudo bem. O problema aparece quando há outras aspas
> > dentro da string, como no exemplo abaixo:
> >
> >  printf("esta string tem \"aspas\" dentro dela");

> >   O sed macho ficaria:
> >
> >  sed -e 's/"\(\(\\"\)\|\([^"]\)\)*"/STRING/g'
>
>     O sed + macho ainda ficaria: &;)
>   sed -e 's/"\(\\"\|[^"]\)*"/STRING/g'

então o sed machão ficaria ';)
sed 's/"\([^"]\|\\"\)*"/"STRING"/g'

pra que o -e ?
e faltou as aspas... não vale falar que você usa printf sem aspas ';)

e... pô aurélio, eu fiquei uns 2 minutos pensando sozinho como fazer isso
(sem colar do baretta) e acabou a ER ficando igual à sua, só que ao
contrário no "ou". a SUA tá errada ':P


--
echo Conectiva - Theodoro, Eliphas Levy |
sed 's/\([A-z]*\) - \([A-z]*,\) \([A-z]*\) \([A-z]*\)/\3 \4 \2 \1/'
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12 GCM/U d--- s:- a23 C+++ UL+++$ P+>$ L++> E--- W- N- !o !K w---
O- M- V?  PS+ PE Y-- PGP t+ 5+ X+ R+ tv- b DI+ D+++ G e-- h+ r- y+
------END GEEK CODE BLOCK------
Quem gosta de homem é gay, mulher gosta é de dinheiro.
Venha para o Grupo Brasil: http://www.lcg.ufrj.br/seti/

#36 De: Luciano Baretta Mandryk <baretta@...>
Data: Seg, 29 de Nov de 1999 4:40 pm
Assunto: Re: sed macho para o casamento de strings
baretta@...
Enviar e-mail Enviar e-mail
 
[...]
>então o sed machão ficaria ';)
>sed 's/"\([^"]\|\\"\)*"/"STRING"/g'
>
>pra que o -e ?
>e faltou as aspas... não vale falar que você usa printf sem aspas ';)
>
Na verdade o sed macho foi originalmente concebido para
trocar as aspas tambem, ou melhor, trocar
	 printf("foobar");
por
	 printf(_("foobar));
ou algo do gênero (internacionalização)

>e... pô aurélio, eu fiquei uns 2 minutos pensando sozinho como fazer isso
>(sem colar do baretta) e acabou a ER ficando igual à sua, só que ao
>contrário no "ou". a SUA tá errada ':P
>
Existe um detalhe qdo à ordem no "ou".
Qdo as duas ERs do "ou" casam, o comportamento correto (o
sed faz isso) é escolher a que casa com mais
caracteres. Porém, algumas implementações de ER ignoram esse
detalhe e só tentam casar a segunda ER se a 1a. não
servir. Em casos assim, se você escrever [^"] | \\" o
negócio não vai funcionar, pq a 1a. ER casa com a barra, e a
procura reinicia pela " sozinha, encerrando a procura!

[]'s

===================================
       Luciano Baretta Mandryk
-----------------------------------
      baretta@...
     mandrius@...
        lbm96@...
-----------------------------------
  Registered Linux User no. 115.666
===================================
"Principio da Recursividade: Para
  entender o principio da recursividade, eh
  necessario entender primeiro o principio
  da recursividade."

#37 De: Eliphas Levy Theodoro <eliphas@...>
Data: Seg, 29 de Nov de 1999 4:49 pm
Assunto: Re: sed macho para o casamento de strings
eliphas@...
Enviar e-mail Enviar e-mail
 
Hoje, às 14:40, Luciano Baretta Mandryk escreveu:

> >sed 's/"\([^"]\|\\"\)*"/"STRING"/g'

> Existe um detalhe qdo à ordem no "ou".
> Qdo as duas ERs do "ou" casam, o comportamento correto (o
> sed faz isso) é escolher a que casa com mais
> caracteres. Porém, algumas implementações de ER ignoram esse
> detalhe e só tentam casar a segunda ER se a 1a. não
> servir. Em casos assim, se você escrever [^"] | \\" o
> negócio não vai funcionar, pq a 1a. ER casa com a barra, e a
> procura reinicia pela " sozinha, encerrando a procura!

Xi... agora complicou tudo. Xover se eu entendi:

procuro por algo que não seja " ;
OU
procuro por algo que seja \" ;

1ª:
{
achei uma \ ; continuo porque ela faz parte do segundo OU (o maior) ;
achei uma " ; fechou o OU.
}
2ª:
{
achei uma \ ; não é uma aspa, então fechou e fim de papo.
}

Então o correto é a primeira hipótese, mas alguma máquina de ER usa a
segunda. Tendi ?

--
echo Conectiva - Theodoro, Eliphas Levy |
sed 's/\([A-z]*\) - \([A-z]*,\) \([A-z]*\) \([A-z]*\)/\3 \4 \2 \1/'
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12 GCM/U d--- s:- a23 C+++ UL+++$ P+>$ L++> E--- W- N- !o !K w---
O- M- V?  PS+ PE Y-- PGP t+ 5+ X+ R+ tv- b DI+ D+++ G e-- h+ r- y+
------END GEEK CODE BLOCK------
Quem gosta de homem é gay, mulher gosta é de dinheiro.
Venha para o Grupo Brasil: http://www.lcg.ufrj.br/seti/

#38 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Seg, 29 de Nov de 1999 5:07 pm
Assunto: Re: sed macho para o casamento de strings
aurelio@...
Enviar e-mail Enviar e-mail
 
> > >   O sed macho ficaria:
> > >  sed -e 's/"\(\(\\"\)\|\([^"]\)\)*"/STRING/g'
> >     O sed + macho ainda ficaria: &;)
> >   sed -e 's/"\(\\"\|[^"]\)*"/STRING/g'
> então o sed machão ficaria ';)
> sed 's/"\([^"]\|\\"\)*"/"STRING"/g'
>
> pra que o -e ?

é, o -e não precisa mesmo, ele é útil quando seu script sed tem mais
de uma linha, e quando você usa os comandos 'a' e 'i' do sed.


> e... pô aurélio, eu fiquei uns 2 minutos pensando sozinho como fazer isso
> (sem colar do baretta) e acabou a ER ficando igual à sua, só que ao
> contrário no "ou". a SUA tá errada ':P

a minha ER não, a glória é toda do baretta, eu só fiz um ajustezinho
&:)


--
s/:(/:)/;s/:(/:|/;s/:(/>(/,http://www.conectiva.com.br/~aurelio
${linux/gui/},ctrl+a],http://www.brasmidia.com/dumbs<esc>:wq

#39 De: Luciano Baretta Mandryk <baretta@...>
Data: Seg, 29 de Nov de 1999 5:27 pm
Assunto: Re: sed macho para o casamento de strings
baretta@...
Enviar e-mail Enviar e-mail
 
On Mon, 29 Nov 1999, Eliphas Levy Theodoro wrote:

>Hoje, às 14:40, Luciano Baretta Mandryk escreveu:
>
>> >sed 's/"\([^"]\|\\"\)*"/"STRING"/g'
>
>> Existe um detalhe qdo à ordem no "ou".
>> Qdo as duas ERs do "ou" casam, o comportamento correto (o
>> sed faz isso) é escolher a que casa com mais
>> caracteres. Porém, algumas implementações de ER ignoram esse
>> detalhe e só tentam casar a segunda ER se a 1a. não
>> servir. Em casos assim, se você escrever [^"] | \\" o
>> negócio não vai funcionar, pq a 1a. ER casa com a barra, e a
>> procura reinicia pela " sozinha, encerrando a procura!
>
>Xi... agora complicou tudo. Xover se eu entendi:
>
>procuro por algo que não seja " ;
>OU
>procuro por algo que seja \" ;
>
>1ª:
>{
>achei uma \ ; continuo porque ela faz parte do segundo OU (o maior) ;
>achei uma " ; fechou o OU.
>}
>2ª:
>{
>achei uma \ ; não é uma aspa, então fechou e fim de papo.
>}
>
>Então o correto é a primeira hipótese, mas alguma máquina de ER usa a
>segunda. Tendi ?
>

Acho que sim, é que eu não entendi direito o que tu disse :)

Deixa eu tentar explicar melhor, para acabar de vez com as
dúvidas:

A ER  = (\"|[^"]) funciona blz sempre
O problema está na ER = ([^"]|\")

Suponha:
	 ER = [^"] | \"
	 Entrada = \"teste

Como o sed "pensa" (CERTO):
ER = A | B:
	 tenta casar A
	 tenta casar B
	 escolhe a que casa mais caracteres

no nosso caso:
	 casa [^"] com \
	 casa \"   com \"
	 como \" é maior que \, ([^"]|\") casa com \"


Como alguns outros interpretadores "pensam" (ERRADO):
ER = A | B
	 tenta casar A
	 se A nao casou com nada,
		 tenta casar B
	 se A casou, com alguma coisa, o resultado é
	 essa coisa.

no nosso caso:
	 casa [^"] com \
		 casou, então o resultado é o \!!!!

Moral da história: colocar as expressões mais específicas
antes (a esquerda do OU)

[]'s

===================================
       Luciano Baretta Mandryk
-----------------------------------
      baretta@...
     mandrius@...
        lbm96@...
-----------------------------------
  Registered Linux User no. 115.666
===================================
"Principio da Recursividade: Para
  entender o principio da recursividade, eh
  necessario entender primeiro o principio
  da recursividade."

#40 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Seg, 29 de Nov de 1999 5:25 pm
Assunto: Re: sed macho para o casamento de strings
aurelio@...
Enviar e-mail Enviar e-mail
 
> >e... pô aurélio, eu fiquei uns 2 minutos pensando sozinho como fazer isso
> >(sem colar do baretta) e acabou a ER ficando igual à sua, só que ao
> >contrário no "ou". a SUA tá errada ':P
> >
> Existe um detalhe qdo à ordem no "ou".
> Qdo as duas ERs do "ou" casam, o comportamento correto (o
> sed faz isso) é escolher a que casa com mais
> caracteres. Porém, algumas implementações de ER ignoram esse
> detalhe e só tentam casar a segunda ER se a 1a. não
> servir. Em casos assim, se você escrever [^"] | \\" o
> negócio não vai funcionar, pq a 1a. ER casa com a barra, e a
> procura reinicia pela " sozinha, encerrando a procura!

exato. veja porque:

na bíblia (vulgo Mastering Regular Expressions) diz-se que há duas
regras básicas paras ERs

1. casa o que achar primeiro

prompt$ echo "um dois tres" | sed "s/dois\|um/XXX/"
XXX dois tres

apesar do "dois" estar antes no ou, o "um" vem primeiro no texto


2. quantificadores são gulosos


echo "a:b:c" | sed "s/.*://"
c

o * e o + sempre vão casar a maior quantidade de texto possível


temos os 2 em nosso exemplo:

(\"|[^"])*

e agora, quem é mais forte? | ou *?

devemos ver as precedências:

* tem a maior precedência
concatenação tem a 2ª maior precedência
| tem a menor precedência

por isso (a)|((b)*(c))
é igual a a|b*c

massa né?  &:)





--
s/:(/:)/;s/:(/:|/;s/:(/>(/,http://www.conectiva.com.br/~aurelio
${linux/gui/},ctrl+a],http://www.brasmidia.com/dumbs<esc>:wq

#41 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Seg, 29 de Nov de 1999 5:27 pm
Assunto: Re: sed macho para o casamento de strings
aurelio@...
Enviar e-mail Enviar e-mail
 
> Como o sed "pensa" (CERTO):
> ER = A | B:
>  tenta casar A
>  tenta casar B
>  escolhe a que casa mais caracteres

lembre-se que este "casa mais caracteres" é so por causa do * depois,
pois normalmente é o primeiro que aparecer no texto.


--
s/:(/:)/;s/:(/:|/;s/:(/>(/,http://www.conectiva.com.br/~aurelio
${linux/gui/},ctrl+a],http://www.brasmidia.com/dumbs<esc>:wq

#42 De: Luciano Baretta Mandryk <baretta@...>
Data: Seg, 29 de Nov de 1999 6:18 pm
Assunto: Re: sed macho para o casamento de strings
baretta@...
Enviar e-mail Enviar e-mail
 
On Mon, 29 Nov 1999, aurelio marinho jargas - ctba wrote:

>
>
>> Como o sed "pensa" (CERTO):
>> ER = A | B:
>>  tenta casar A
>>  tenta casar B
>>  escolhe a que casa mais caracteres
>
>lembre-se que este "casa mais caracteres" é so por causa do * depois,
>pois normalmente é o primeiro que aparecer no texto.
>
>
Nao, o * ainda não entrou na jogada. :-)
Veja que \" sempre casa 2 caracteres, o \ e o ",
enqto [^"] SEMPRE casa só 1 caracter. Por exemplo,
	 echo xxy | sed 's/\(x\|xx\)/X/'
vai retornar Xy. As implementações erradas de ERs
retornariam Xxy, ou XXy, precisaria testar.

[]'s

===================================
       Luciano Baretta Mandryk
-----------------------------------
      baretta@...
     mandrius@...
        lbm96@...
-----------------------------------
  Registered Linux User no. 115.666
===================================
"Principio da Recursividade: Para
  entender o principio da recursividade, eh
  necessario entender primeiro o principio
  da recursividade."

mensagens 13 - 42 de 5040   Mais antigos  |  < Mais antigos  |  Mais recentes >  |  Mais recentes
mensagens 13 - 42 de 5040   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