Entrar
Usuário novo? Cadastre-se
sed-br · Lista sobre SED e Expressões Regulares
? 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 1 - 30 de 4329   Mais recentes  |  < Mais recentes  |  Mais antigos >  |  Mais antigos
mensagens: Exibir resumo de mensagens   (Agrupar por tópico) Classificar por data v  
#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/

#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

#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@...)

#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

#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

#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

#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

#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

#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"

#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

#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"

#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------

#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

#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."

#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

#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"

#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------

#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

#12 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Qua, 13 de Out de 1999 12:09 pm
Assunto: Re: Licq2centerICQ
aurelio@...
Enviar e-mail Enviar e-mail
 
@ 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 opção -n suprime a saída padrão, então a não ser que
   tenha um comando p no sed, nada será impresso na saída.
* o caractere § é o delimitador do s§isso§aquilo§
* com o \(.*\) vc joga no buffer 1 o nick da pessoa
* com o \1 você obtém o conteúdo do registrador 1
* mais 2 TABs literais (não lembro de dá pra por um \t
   aqui...)
* e o nome do arquivo


não testei, mas deve funcionar

caso no 'Alias = ' possam ter vários espaços ou ainda TABs,
basta por um 'Alias\s\+=\s\+' sendo o \s um caractere branco
(espaço, TAB, etc) e o \+ pelo menos 1 ocorrência da
entidade anterior.


> Sendo que os arquivos .uin tem como *nome* o numero (UIN) da pessoa e
> dentro do arquivo o nick fica em uma linha como:
>
> Alias = Ademar
>
> A saida eh algo do tipo:
>
> Nick1           xxxxxxxx
> Nick2  xxxxxxxx
> .
> .
> .
>
> Onde xxxxx eh o UIN.
>
> Meu script funciona (com excessao de que em alguns nicks fica um TAB a
> mais do que nos outros).

isso é por que sempre são 2 TABs e os nicks são de tamanhos
diferentes


> Alguem tem a solucao em uma linha apenas? :)

3 tá bom?  &:)



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

#11 De: "Ademar de Souza Reis Jr." <ademarjr@...>
Data: Qua, 13 de Out de 1999 1:38 am
Assunto: Licq2centerICQ
ademarjr@...
Enviar e-mail Enviar e-mail
 
Hi All.

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

Sendo que os arquivos .uin tem como *nome* o numero (UIN) da pessoa e
dentro do arquivo o nick fica em uma linha como:

Alias = Ademar

A saida eh algo do tipo:

Nick1           xxxxxxxx
Nick2  xxxxxxxx
.
.
.

Onde xxxxx eh o UIN.

Meu script funciona (com excessao de que em alguns nicks fica um TAB a
mais do que nos outros).

Alguem tem a solucao em uma linha apenas? :)

[]'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

--
"The nice thing about Windows is - It does not just crash, it displays a
dialog box and lets you press 'OK' first."

#10 De: Eliphas Levy Theodoro <eliphas@...>
Data: Seg, 11 de Out de 1999 1:48 pm
Assunto: Re: help
eliphas@...
Enviar e-mail Enviar e-mail
 
Hoje, às 09:23, Ricardo escreveu:

> Estou tentando alterar umas expressoes em tags html/sgml
>
> preciso trocar <algumacoisa> por BLA , sendo que alguma coisa é <A
> HREF="    ">
>  e dentro das aspas tem várias coisas diferentes.
>
> HELP Please!!

trocando em linguagem sed, você quer procurar algo que comece por:

<A HREF="

tenha caracteres diferentes de aspas

e termine com:

">

Vamos lá...

cat arquivo.html | \
sed 's/<A HREF="[^"]*">/BLA/g'

explicando.

sed            < nome do mágico ;P
s/             < substituir
<A HREF="      < a parte que não vai mudar
[^"]*">        < qualquer letra que NÃO for aspas, e que termine por ">
/BLA/g         < substituir essas coisas por BLA em todas as ocorrências


voilá.

--
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------

#9 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Seg, 11 de Out de 1999 1:51 pm
Assunto: Re: help
aurelio@...
Enviar e-mail Enviar e-mail
 
> Estou tentando alterar umas expressoes em tags html/sgml
>
> preciso trocar <algumacoisa> por BLA , sendo que alguma coisa é <A
> HREF="    ">
>  e dentro das aspas tem várias coisas diferentes.
>
> HELP Please!!

se entendi direito, você excluir todas as tags html, então
basta um

s§<[^>]*>§BLA§g

se for exclusivamente os "a href",

s§<a href=[^>]*>§BLA§g


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

#8 De: Ricardo <ricardo@...>
Data: Seg, 11 de Out de 1999 11:23 am
Assunto: help
ricardo@...
Enviar e-mail Enviar e-mail
 
Estou tentando alterar umas expressoes em tags html/sgml

preciso trocar <algumacoisa> por BLA , sendo que alguma coisa é <A
HREF="    ">
  e dentro das aspas tem várias coisas diferentes.

HELP Please!!


Ricardo Soares Guimarães
mailto:ricardo@...
http://www.universolinux.com.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."

#7 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Seg, 4 de Out de 1999 2:56 pm
Assunto: Re: Geral sobre o sed
aurelio@...
Enviar e-mail Enviar e-mail
 
@ 2/10, Ademar de Souza Reis Jr.:
> Me inscrevi na lista esses dias, e nao tenho o minimo de experiencia com o
> sed (nada alem de um sed s/velho/novo/). :)

olá ademar,

mas estamos aqui pra isso mesmo, aprender  &:)


> 1. O Sed pode ser utilizado pra substituir o awk? Alem deste, quais outros
> utilitario do shell seriam "englobados" pelo sed?

sim e não.

o sed é poderosíssimo na manipulação de texto, mas o awk tem
funções que o sed não tem, pois o awk é uma linguagem de
programação, e tem estruturas como condicional (if then
else) e variáveis, entre outros.

mas se você não usa condicionais no awk, o sed o substitui
perfeitamente.

utilitários englobados? não seria bem isso, mas com o sed
você consegue "emular" algumas (ou todas) as funcionalidades
de:

- cat
- tac
- cut
- rev
- grep
- egrep
- fmt
- ed

e provavelmente mais algum que eu não lembro agora &:)
alguns desses estão demostrados no FAQ do sed.


> 2. Nem procurei, mas vou perguntar assim mesmo: Vcs podem me passar
> algumas urls sobre o sed? Tipo um "sed-lovers" ou coisa assim? Alem de
> URLs, existem tutoriais ou coisas do tipo pra quem pretende estudar
> expressoes regulares?


http://homepage.cis.nctu.edu.tw/~gis84806/sed
http://www.dreamwvr.com/sed-info/sed-faq.html
http://www.cornerstonemag.com/sed/sedfaq.html
http://www.wollery.demon.co.uk

para expressões regulares, eu recomendo a bíblia:
"Mastering Regular Expressions" do jeffrey e. f. friedl,
distribuído pela o'reily.

e esses dias li um HOWTO muito bom, é para expressões
regulares em python, mas também explica os conceitos
básicos:

http://python.org/doc/howto/regex


> 3. (Ops, eram soh duas :D) Essa lista tah viva? :P

está!
só falta mais quórum para ficar mais movimentada &:)


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

#6 De: "Ademar de Souza Reis Jr." <ademarjr@...>
Data: Sáb, 2 de Out de 1999 7:22 pm
Assunto: Geral sobre o sed
ademarjr@...
Enviar e-mail Enviar e-mail
 
Me inscrevi na lista esses dias, e nao tenho o minimo de experiencia com o
sed (nada alem de um sed s/velho/novo/). :)

Tenho duas perguntas:

1. O Sed pode ser utilizado pra substituir o awk? Alem deste, quais outros
utilitario do shell seriam "englobados" pelo sed?

2. Nem procurei, mas vou perguntar assim mesmo: Vcs podem me passar
algumas urls sobre o sed? Tipo um "sed-lovers" ou coisa assim? Alem de
URLs, existem tutoriais ou coisas do tipo pra quem pretende estudar
expressoes regulares?

3. (Ops, eram soh duas :D) Essa lista tah viva? :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"

#5 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Seg, 20 de Set de 1999 8:23 pm
Assunto: [sed] Table of differences among DOS versions of sed (fwd)
aurelio@...
Enviar e-mail Enviar e-mail
 
Date: Sat, 18 Sep 1999 01:54:55 -0500
From: Eric Pement <epement@...>

(Copied from my web page, but some of you might like to know this.
If you have wordwrap ON in your mail reader, turn it OFF.)


===========================================================================
          A Table of Differences among six DOS versions of SED
===========================================================================
                                      GNU sed  GNU   GNU   GNU  HHsed sedmod
This version of sed supports . . . . 3.02.80  3.02  2.05  1.03  1.5    1.0
---------------------------------------------------------------------------
Win95 long filenames                     Y     Y     Y     Y     Y[1]   N

newlines in s/find/rep/ text via \n      Y     N     N     Y     Y      Y

represent tabs by \t                     Y     N     N     Y     Y      Y

"a append-on-same-line" (a,i,c cmds)     Y     N     N     N     Y      Y

interval expressions like \{m,n\}        Y     Y     Y     N     Y[2]   N

ignore case /flag/i or switch (-i)       Y     Y     N     N     N      Y

hex code entry via \xHH                  Y     N     N     Y     Y      N

unlimited line length or buffer size     Y     Y     Y    64K   4K     4K

numeric arg flags in s/ubsti/tution/5    Y     Y     Y     Y     Y      N

OR searches with \|                      Y     Y     Y     Y     N      N

periodic line matching with M~N          Y     Y     Y     N     N      N

word arguments with $1, $2, ... $8, $9   N     N     N     N     N      Y

case change with \L,\l, \U,\u, \E,\e     N     N     N     N     N      Y

can run in MS-DOS mode, outside Windows  Y     Y     N     N     Y[3]   Y
===========================================================================

Notes:

  (1) File SED15X.ZIP does not support Win95 long filenames. However, a
  version of SED15.EXE compiled with Mingw32 does support long filenames
  and is available at http://www.cornerstonemag.com/sed/

  (2) Interval range of \{0,n\} not supported in sed15.

  (3) sed15 will run in MS-DOS mode; the version compiled with Mingw32
  will not.

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

    After reading this table, let's hear it for GNU sed v3.02.80!
Just a few more steps, and it will have Y's down the first row.
Wonder if \L, \l, \U, \u, and similar switches in the right side
of an s/// command are that hard to implement? The code could be
borrowed from sedmod, which comes with open source GPL license.


--
Eric Pement <epement@...>
senior editor, Cornerstone magazine
sed FAQ file: http://www.cornerstonemag.com/sed/sedfaq.html
sed 1-liners: http://www.cornerstonemag.com/sed/sed1line.txt

#4 De: Eliphas Levy Theodoro <eliphas@...>
Data: Qua, 25 de Ago de 1999 9:34 pm
Assunto: Hello world
eliphas@...
Enviar e-mail Enviar e-mail
 
formail -x Subject: | sed 's/Hello/Alô/;s/world/mundo/'

:)
--
Eliphas Levy Theodoro - Conectiva
echo "explorer, notepad e outlook" | \
sed 's/e.*r/lynx/;s/no.*d/vi/;s/o.*/pine/' | \

#3 De: Ricardo <ricardo@...>
Data: Qui, 26 de Ago de 1999 7:52 am
Assunto: Re: Hello world
ricardo@...
Enviar e-mail Enviar e-mail
 
eae, seds proceis

#2 De: aurelio marinho jargas - ctba <aurelio@...>
Data: Qui, 26 de Ago de 1999 8:48 pm
Assunto: Re: Hello world
aurelio@...
Enviar e-mail Enviar e-mail
 
> Eliphas Levy Theodoro - Conectiva
> echo "explorer, notepad e outlook" | \
> sed 's/e.*r/lynx/;s/no.*d/vi/;s/o.*/pine/' | \

tem um jeito mais fácil  &:)

echo 'explorer, notepad e outlook' | \
sed "s/\<[a-z]*\>\([^a-z]*\)\<[a-z]*\>\([^a-d,f-z]*\)\<[a-z]*\>/lynx\1vi\2pine/"

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

#1 De: "aurélio marinho jargas" <aurelio@...>
Data: Qua, 25 de Ago de 1999 9:38 pm
Assunto: Welcome to the sed-br eGroup
aurelio@...
Enviar e-mail Enviar e-mail
 

lista brasileira sobre o aplicativo sed, disponível para linux, unix, dos, =
etc.

Group Manager: sed-br-owner@egroups.com

To subscribe, send a message to sed-br-subscribe@egroups.com or go to the e-groups's home page at http://www.egroups.com/group/sed-br/


mensagens 1 - 30 de 4329   Mais recentes  |  < Mais recentes  |  Mais antigos >  |  Mais antigos
Avançado

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