On Mon, 12 May 2003, Spaz wrote:
> Ae Thobia, vê se ficou melhor desse jeito, peço desculpa por não ter
> expressado direito no último e-mail.
sem problemas. quanto mais você detalhar o problema melhor a
resposta que você conseguirá. :)
> Informações do arquivo original:
ok
> utilizando os parametros que me passou, ficou assim:
>
> 1 parte: sed '/Drive\|Total/!d'
>
> Drive A:/ (Removable Disk) :
> Drive C:/ (Fixed Disk) :
> Bytes Total 7.86 GB / 8048 MB
> Drive D:/ (Cd-Rom Drive) :
> Drive E:/ (Remote Network Drive) :
> Bytes Total 1.20 GB / 1229 MB
> Drive F:/ (Remote Network Drive) :
> Bytes Total 1.20 GB / 1229 MB
>
isso, só as linhas que queremos.
> 2 parte: sed 'N;s,: *\n,;,;s/[[:blank:]]\+/ /g;s,^\|$,;,g'
>
> Drive A:/ (Removable Disk) :;
> ;Drive C:/ (Fixed Disk) ; Bytes Total 7.86 GB / 8048 MB;
> ;Drive D:/ (Cd-Rom Drive) ;Drive E:/ (Remote Network Drive) :;
> ; Bytes Total 1.20 GB / 1229 MB
> Drive F:/ (Remote Network Drive) :;
> ; Bytes Total 1.20 GB / 1229 MB
sim, é que eu juntei em cada linha o Drive e o Bytes total
referente a ele.
> Tentei usar esse parametro também mas não consegui:
> sed ":a;$!N;s/\n/ /;ta" pois existe alguns tabs/espaços no meio
> e zoa todo o arquivo deixando com espços no meio.
sim, então temos que limpar isto, usando o s/[[:blank:]]\+/ /g,
ou seja, trocamos todos os \t e espaços por apenas 1 espaço
> Estou tentando deixar o arquivo nesse formato(csv), mas para isso
> preciso que as info. fique assim:
>
> ;A:/ (Removable Disk) :;Drive C:/ (Fixed Disk) Bytes Total 7.86 GB / 8048
MB;Drive D:/ Cd-Rom Drive) ;Drive E:/ (Remote Network Drive) : Bytes Total 1.20
GB / 1229 MB;Drive F:/ (Remote Network Drive) : Bytes Total 1.20 GB / 1229 MB;
ok, então você quer tudo em 1 linha separado por ponto-e-virgula.
vamos lá:
$ cat x | sed '/Drive\|Total/!d'
Drive A:/ (Removable Disk) :
Drive C:/ (Fixed Disk) :
Bytes Total 7.86 GB / 8048 MB
Drive D:/ (Cd-Rom Drive) :
Drive E:/ (Remote Network Drive) :
Bytes Total 1.20 GB / 1229 MB
Drive F:/ (Remote Network Drive) :
Bytes Total 1.20 GB / 1229 MB
blz! agora vamos arrumar esta saída.
$ cat x | sed '/Drive\|Total/!d' |\
sed ':a;$!N;s/\n/; /;ta;s/[[:blank:]]\+/ /g;s,.*,;&;,'
;Drive A:/ (Removable Disk) :; Drive C:/ (Fixed Disk) :; Bytes Total 7.86 GB /
8048 MB; Drive D:/ (Cd-Rom Drive) :; Drive E:/ (Remote Network Drive) :; Bytes
Total 1.20 GB / 1229 MB; Drive F:/ (Remote Network Drive) :; Bytes Total 1.20 GB
/ 1229 MB;
:a;$!N;s/\n/; /;ta - juntamos tudo em 1 linha separando por '; '
ou seja, trocamos \n por '; '
s/[[:blank:]]\+/ /g - aqui tiramos espaços repetidos e TAB
s,.*,;&;, - colcoamos ; no início e no fim da linha.
blz ?
thobias
-------
echo 9446046325380026818553633794429812592304650P | dc
-------
http://www.lcp.coppe.ufrj.br/~thobias
____________________________
|
| Against - HTML Mail
| Against - MS ATTACHMENTS
|
----------------------------
sim, é que eu juntei em cada linha o Drive e o Bytes total referente a ele.
> Tentei usar esse parametro também mas não consegui: > sed ":a;$!N;s/\n/ /;ta" pois existe alguns tabs/espaços no meio > e zoa todo o arquivo deixando com espços no meio.
sim, então temos que limpar isto, usando o s/[[:blank:]]\+/ /g, ou seja, trocamos todos os \t e espaços por apenas 1 espaço
> Estou tentando deixar o arquivo nesse formato(csv), mas para isso > preciso que as info. fique assim: > > ;A:/ (Removable Disk) :;Drive C:/ (Fixed Disk) Bytes Total 7.86 GB / 8048 MB;Drive D:/ Cd-Rom Drive) ;Drive E:/ (Remote Network Drive) : Bytes Total 1.20 GB / 1229 MB;Drive F:/ (Remote Network Drive) : Bytes Total 1.20 GB / 1229 MB;
ok, então você quer tudo em 1 linha separado por ponto-e-virgula. vamos lá:
ae renato,
On Tue, 13 May 2003, Renato Silveira wrote:
> Imprimir somente as linhas do arquivo onde as 4 primeira posições sejam
> "espaço em branco" ex.
sed -n '/^[ ]\{4\}/p'
^ - início de linha
[ ] - espaço em branco
{4} - repetidos 4 vezes
p - imprime
falow
thobias
-------
echo 9446046325380026818553633794429812592304650P | dc
-------
http://www.lcp.coppe.ufrj.br/~thobias
____________________________
|
| Against - HTML Mail
| Against - MS ATTACHMENTS
|
----------------------------
Obrigado pelo ajuda Thobias. Funcionou !
Renato Silveira
ID : 3157*145
-----Mensagem original-----
De: Thobias Salazar Trevisan [mailto:thobias@...]
Enviada em: terça-feira, 13 de maio de 2003 15:59
Para: sed-br@...
Assunto: Re: [sed-br] novato pede help
ae renato,
On Tue, 13 May 2003, Renato Silveira wrote:
> Imprimir somente as linhas do arquivo onde as 4 primeira posições sejam
> "espaço em branco" ex.
sed -n '/^[ ]\{4\}/p'
^ - início de linha
[ ] - espaço em branco
{4} - repetidos 4 vezes
p - imprime
falow
thobias
-------
echo 9446046325380026818553633794429812592304650P | dc
-------
http://www.lcp.coppe.ufrj.br/~thobias
____________________________
|
| Against - HTML Mail
| Against - MS ATTACHMENTS
|
----------------------------
--
para sair da lista: sed-br-unsubscribe@...
Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html
Puxa, Aurélio, essa msg deve ter sido muito chata para você escrever,
mas eu gostei muito de ler... porque entendi tudo! Sua abordagem é muito
boa mesmo, você é um mestre zen... Só no finalzinho a coisa ficou um
pouco confusa, e teve um troço que você fez ali que eu nunca teria
pensado sozinho, mas tudo bem. Logo depois entendi e vi o pulo do gato.
Talvez eu precise mesmo rever os meus conceitos. Eu tenho mania de querer
fazer tudo numa regex só, tipo um raio laser de alta precisão que vai
com tudo mas corta direitinho sem errar e deixa o produto acabado, sem
sobra, sem talhos nem rebarbas. Mas talvez essa não seja mesmo a melhor
forma. Bela aula, como sempre. Obrigadão!
--
Luciano Espirito Santo
Santos, SP - Brasil
<-quote-> **************************************************
On 08/05/03 at 16:49, aurelio wrote in 8K:
Assunto/Subject: Re: [sed-br] 2 aspas, sem PCRE
>ae luciano,
>
>finalmente vou limpar o INBOX... espero que ainda te sirva.
>
>AVISO: e-mail looooongo e chato, leia quando estiver com tempo.
>...
[a mensagem original foi editada para poupar espaço e utilização de
recursos; consulte os arquivos da lista se quiser vê-la inteira]
********* END OF ORIGINAL MESSAGE *********</-quote->
s/ [0-9]\{2\}-[0-9]\{2\}-[0-9]\{2\}//
tem como eu deixar esse comando menorzinhu e talls? ou fazer de outra forma?
caso tenha e alguem o faça pra mim... peço que me detalhe e talls... pra eu
aprender =o)
tenho:
264 1 03-05-13 19:34:49
264 1 03-05-13 19:40:23
401 1 03-05-13 23:46:23
292 1 03-05-13 23:53:44
e tah voltando blz:
264 1 19:34:49
264 1 19:40:23
401 1 23:46:23
292 1 23:53:44
valeus ae galera =o)
[]'s
Davis Zanetti Cabral - s4t4n
e-mail: davis at phphp.com.br
web site: http://www.phphp.com.br/
portifolio: http://s4t4n.tfhell.com.br/
"Melhor queimar de uma vez, que apagar aos poucos"
__________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.
_____________________________________________________________
__________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.
_____________________________________________________________
Oi Davis,
O arquivo SEMPRE terá este formato??
Se sim, então pode usar:
s/..-..-..//
Ajudou??
Pode ter outras soluções mais polidas (aurélio??), mas
essa já simplifica bem...
[]'s
Marcelo Pereira
PHP/SQL/PostgreSQL
Slackware Linux
--- Davis Zanetti Cabral <davis.cabral@...>
escreveu:
---------------------------------
s/ [0-9]\{2\}-[0-9]\{2\}-[0-9]\{2\}//
tem como eu deixar esse comando menorzinhu e talls? ou
fazer de outra forma?
caso tenha e alguem o faça pra mim... peço que me
detalhe e talls... pra eu
aprender =o)
tenho:
264 1 03-05-13 19:34:49
264 1 03-05-13 19:40:23
401 1 03-05-13 23:46:23
292 1 03-05-13 23:53:44
e tah voltando blz:
264 1 19:34:49
264 1 19:40:23
401 1 23:46:23
292 1 23:53:44
valeus ae galera =o)
[]'s
Davis Zanetti Cabral - s4t4n
e-mail: davis at phphp.com.br
web site: http://www.phphp.com.br/
portifolio: http://s4t4n.tfhell.com.br/
"Melhor queimar de uma vez, que apagar aos poucos"
__________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.
_____________________________________________________________
Yahoo! Groups Sponsor Escolha uma entre + de
110.000 vagas!- Profissional- Profissional :
Diretoria- Profissional : Gerência- Profissional
: Supervisão- Profissional : Superior-
Profissional : Técnico- Profissional : Outros-
Recém-formados- Estágiários
[input] [input] [input]
--
para sair da lista:
sed-br-unsubscribe@...
Seu uso do Yahoo! Grupos é sujeito aos Termos do
Serviço Yahoo!.
> ATTACHMENT part 2 application/ms-tnef
> __________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.
>
_____________________________________________________________
>
_______________________________________________________________________
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/
ae davis,
> s/ [0-9]\{2\}-[0-9]\{2\}-[0-9]\{2\}//
> tem como eu deixar esse comando menorzinhu e talls?
> tenho:
> 264 1 03-05-13 19:34:49
> 264 1 03-05-13 19:40:23
> 401 1 03-05-13 23:46:23
> 292 1 03-05-13 23:53:44
>
> e tah voltando blz:
> 264 1 19:34:49
> 264 1 19:40:23
> 401 1 23:46:23
> 292 1 23:53:44
olha, a ER que você usou está corretíssima. apenas como os
números só se repetem 2 vezes, é mais simples colocá-los
diretamente:
s/ [0-9][0-9]-[0-9][0-9]-[0-9][0-9]//
mas olhando assim, vemos que o trecho "[0-9][0-9]-" se repete
duas vezes, então podemos fazer:
s/ \([0-9][0-9]-\)\{2\}[0-9][0-9]//
o que diminui o tamanho da expressão, mas a torna mais difícil
de entender.
caso você queira algo realmente menor e menos preciso, o comando
abaixo serve:
s/ [0-9][0-9-]\+//
ou seja, você apaga um espaço seguido de um número, seguido
de uma combinação qualquer de números e traços.
isso assumindo que a segunda coluna sempre é um número de 0 a 9
somente. se for 10 ou maior é ele que será apagado.
ou ainda
s/ [0-9-]\{3,\}//
pra assegurar que vai pegar uma string de pelo menos 3 caracteres.
é isso :)
=====
--
ATENCAO: o www.verde666.org vai morrer, use www.aurelio.net
ATTENTION: www.verde666.org is no more, use www.aurelio.net
_______________________________________________________________________
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/
Oi
On 14 May 2003 Davis Zanetti Cabral wrote:
> s/ [0-9]\{2\}-[0-9]\{2\}-[0-9]\{2\}//
> tem como eu deixar esse comando menorzinhu e talls? ou fazer de outra forma?
>
> caso tenha e alguem o faça pra mim... peço que me detalhe e talls... pra eu
> aprender =o)
>
> tenho:
> 264 1 03-05-13 19:34:49
> 264 1 03-05-13 19:40:23
> 401 1 03-05-13 23:46:23
> 292 1 03-05-13 23:53:44
>
> e tah voltando blz:
> 264 1 19:34:49
> 264 1 19:40:23
> 401 1 23:46:23
> 292 1 23:53:44
>
> valeus ae galera =o)
De outra forma:
s/\(.*\) \(.*\) \(.*\)/\1 \3/
Considera que tens 4 campos separados por brancos. Pega os dois
primeiros campos como um grupo (\1), o segundo campo (que queres
tirar) como outro grupo (\2) e o terceiro campo (\3). Substitui tudo
por "\1 \3" (o primeiro e o terceiro grupo). Nao e' tao precisa quanto
a er que colocaste, que especifica o formato campo
(2digitos-2digitos-2digitos) em vez de trabalhar com grupos.
Outra forma, off-topic, e' com o cut:
echo "264 1 03-05-13 19:34:49" | cut -d " " -f "1 2 4"
Faz o mesmo que a er que coloquei acima, so' que nao agrupa os dois
primeiros campos em um grupo.
Um abraco.
Mario
>
> []'s
>
> Davis Zanetti Cabral - s4t4n
> e-mail: davis at phphp.com.br
> web site: http://www.phphp.com.br/
> portifolio: http://s4t4n.tfhell.com.br/
> "Melhor queimar de uma vez, que apagar aos poucos"
>
>
> __________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
>
> __________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.
> _____________________________________________________________
ae!
> De outra forma:
>
> s/\(.*\) \(.*\) \(.*\)/\1 \3/
Talvez você quisesse acrescenter um \(.*\) e mostrar o
\1, \3 e \4, ficando assim:
s/\(.*\) \(.*\) \(.*\) \(.*\)/\1 \2 \4/
Correto??
[]'s
Marcelo Pereira
---oo-](+)[-oo---
_______________________________________________________________________
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/
ae marcelo,
--- Marcelo Pereira <gandalf_mp@...> escreveu:
> O arquivo SEMPRE terá este formato??
> Se sim, então pode usar:
> s/..-..-..//
nossa cara, perfeito!
> Pode ter outras soluções mais polidas (aurélio??), mas
> essa já simplifica bem...
a tua tá melhor, bem mais simples e fácil de entender, massa!
=====
--
ATENCAO: o www.verde666.org vai morrer, use www.aurelio.net
ATTENTION: www.verde666.org is no more, use www.aurelio.net
_______________________________________________________________________
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/
A única coisa que me ocorre é:
s/ ([0-9]{2}-?){3}//
É menor, mas não é muito mais simples. Ou então:
s/ ([0-9-]{8})//
Mas não sei o que é "talls".
--
Luciano Espirito Santo
Santos, SP - Brasil
<-quote-> **************************************************
On 14/05/03 at 13:11, Davis Zanetti Cabral wrote in 8K:
Assunto/Subject: [sed-br] duhhh =o(
>s/ [0-9]\{2\}-[0-9]\{2\}-[0-9]\{2\}//
>tem como eu deixar esse comando menorzinhu e talls? ou fazer de outra
forma?
>
>tenho:
>264 1 03-05-13 19:34:49
>264 1 03-05-13 19:40:23
>401 1 03-05-13 23:46:23
>292 1 03-05-13 23:53:44
>
>e tah voltando blz:
>264 1 19:34:49
>264 1 19:40:23
>401 1 23:46:23
>292 1 23:53:44
********* END OF ORIGINAL MESSAGE *********</-quote->
ae luciano,
--- Luciano ES <luc-groups@...> escreveu:
> Puxa, Aurélio, essa msg deve ter sido muito chata para você
> escrever, mas eu gostei muito de ler... porque entendi tudo!
beleza cara! então valeu o esforço :)
> Talvez eu precise mesmo rever os meus conceitos. Eu tenho mania
> de querer fazer tudo numa regex só, tipo um raio laser de alta
> precisão que vai com tudo mas corta direitinho sem errar e deixa
> o produto acabado, sem sobra, sem talhos nem rebarbas. Mas talvez
> essa não seja mesmo a melhor forma.
olha, isso é mesmo uma coisa engraçada e acho que até vale a pena
por no livro.
antes eu pensava exatamente assim como você descreveu. sempre
fazia tudo num s/// só, marcando altos grupos e abusando dos
retrovisores depois.
depois, lendo mensagens na sed-users, vendo as técnicas dos
outros e com a experiência das funções ZZ, acabei migrando
para a tática do
vai-cortando-todos-os-lixos-até-que-sobre-o-que-vc-quer-no-final
alguns motivos, alguns técnicos, outros meramente emocionais do
porque fazer isso.
exemplo para os que não entenderam direito do que estamos falando:
texto: "Oi, tudo bem? Tudo bem! Fora o tédio! Que me consome..."
o que eu quero: "Tudo Bem!"
tática 1 - laser de alta precisão:
sed -n 's/^Oi.*? \([^!]*!\) .*/\1/p'
tática 2 - faxina:
sed '/^Oi/!d ; s/!.*/!/ ; s/.*? //'
diferenças:
1. usar o -n é palha. sempre qdo se precisa do grep+sed, lá
vem o -n. eu prefiro usar o /.../!d e depois limpar somente
as linhas que interessam
2. a eliminação "em partes" tende a precisar de ERs mais simples,
logo se torna mais fácil de compor
3. diz a lenda que usar o retrovisor deixa o sed mais lento,
então sempre que puder evitá-lo é uma boa
4. note que no 1o foi necessário usar o [^!] por que o .* iria
até a segunda exclamação. no 2o o s/!.*// resolve isso fácil
5. para problemas complicados como o seu, nem sempre dá pra
fazer todas as exceções numa ER somente, e acaba sendo mais
easy-riding fazer pequenos pedacinhos e ir acompanhando a
evolução do script até chegar no nirvana
6. entender as coisas por partes é mais fácil do que encarar
um comandão de 80 carcteres de uma vez (vide palavras longas
em alemão :)
7. na tática 2 geralmente se usa o .* para especificar partes
do lixo, e usar .* é massa :)
ah, no fim, use o que você mais gosta :)
=====
--
ATENCAO: o www.verde666.org vai morrer, use www.aurelio.net
ATTENTION: www.verde666.org is no more, use www.aurelio.net
_______________________________________________________________________
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/
On 14 May 2003 Marcelo Pereira wrote:
> ae!
>
> > De outra forma:
> >
> > s/\(.*\) \(.*\) \(.*\)/\1 \3/
>
> Talvez você quisesse acrescenter um \(.*\) e mostrar o
> \1, \3 e \4, ficando assim:
>
> s/\(.*\) \(.*\) \(.*\) \(.*\)/\1 \2 \4/
>
> Correto??
Tambem pode ser. E' que juntei os dois primeiros campos em um so'
grupo, para deixar a ER mais curta:
\1 \2 \3
/-----------\ /----\ /----\
campo1 campo2 campo3 campo4
Um abraco.
Mario
>
> []'s
>
> Marcelo Pereira
> ---oo-](+)[-oo---
>
> _______________________________________________________________________
> 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
>
Nossa, cara, que idéia! Regex em alemão deve ser divertidíssimo!!!
:-))
--
Luciano Espirito Santo
Santos, SP - Brasil
<-quote-> **************************************************
On 14/05/03 at 17:22, aurelio wrote in 5K:
Assunto/Subject: Re: [sed-br] Re: 2 aspas, sem PCRE
> 6. entender as coisas por partes é mais fácil do que encarar
> um comandão de 80 carcteres de uma vez (vide palavras longas
> em alemão :)
********* END OF ORIGINAL MESSAGE *********</-quote->
valeus galera pela forca ae... deu pra sacar num exemplo soh
varias coisas... e *talls* =o)
[]s
Davis
ps.: talls eh talls =o)
> -----Mensagem original-----
> De: Mario Domenech Goulart <mario@...>@CELULAR
> Enviada em: Wednesday, May 14, 2003 6:39 PM
> Para: sed-br@...
> Assunto: Re: [sed-br] duhhh =o(
>
>
> On 14 May 2003 Marcelo Pereira wrote:
>
> > ae!
> >
> > > De outra forma:
> > >
> > > s/\(.*\) \(.*\) \(.*\)/\1 \3/
> >
> > Talvez você quisesse acrescenter um \(.*\) e mostrar o
> > \1, \3 e \4, ficando assim:
> >
> > s/\(.*\) \(.*\) \(.*\) \(.*\)/\1 \2 \4/
> >
> > Correto??
>
> Tambem pode ser. E' que juntei os dois primeiros campos em um so'
> grupo, para deixar a ER mais curta:
>
> \1 \2 \3
> /-----------\ /----\ /----\
> campo1 campo2 campo3 campo4
>
> Um abraco.
> Mario
>
> >
> > []'s
> >
> > Marcelo Pereira
> > ---oo-](+)[-oo---
> >
> > _______________________________________________________________________
> > 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
> >
>
> --
> 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.
_____________________________________________________________
__________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.
_____________________________________________________________
Amigos:
Tenho uma linha com o seguinte formato:
aaaaaa!bbbbbbbb@cccccccc
Preciso que fique:
aaaaaa!cccccccc
Atentando que o que estah entre a '!' e a "@" eh de tamanho variavel.
Grato
Bohne
sed -r 's/([^!]+!)[^@]+@(.*)/\1\2/'
--
Luciano Espirito Santo
Santos, SP - Brasil
<-quote-> **************************************************
On 16/05/03 at 11:27, Frederico BOHNE Espinosa wrote in 3K:
Assunto/Subject: [sed-br] auxilio
> Tenho uma linha com o seguinte formato:
>
>aaaaaa!bbbbbbbb@cccccccc
>
> Preciso que fique:
>
>aaaaaa!cccccccc
>
> Atentando que o que estah entre a '!' e a "@" eh de tamanho variavel.
********* END OF ORIGINAL MESSAGE *********</-quote->
nossa,
mas que canhão pra matar essa mosquinha :)
--- Luciano ES <luc-groups@...> escreveu:
> sed -r 's/([^!]+!)[^@]+@(.*)/\1\2/'
sed 's/!.*@/!/'
ou caso queira a versão não gulosa
sed 's/![^@]*@/!/'
> > Tenho uma linha com o seguinte formato:
> >aaaaaa!bbbbbbbb@cccccccc
> >
> > Preciso que fique:
> >aaaaaa!cccccccc
=====
--
ATENCAO: o www.verde666.org vai morrer, use www.aurelio.net
ATTENTION: www.verde666.org is no more, use www.aurelio.net
_______________________________________________________________________
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/
ae frederico,
On 16 May 2003, Frederico BOHNE Espinosa wrote:
> Tenho uma linha com o seguinte formato:
> aaaaaa!bbbbbbbb@cccccccc
> Preciso que fique:
> aaaaaa!cccccccc
$ echo 'aaaaaa!bbbbbbbb@cccccccc' | sed 's/!.*@/!/'
aaaaaa!cccccccc
apaga tudo entre ! e @, inclusive os delimitadores, por isto
temos que colocar o último !
falow
thobias
-------
echo 9446046325380026818553633794429812592304650P | dc
-------
http://www.lcp.coppe.ufrj.br/~thobias
____________________________
|
| Against - HTML Mail
| Against - MS ATTACHMENTS
|
----------------------------
antes de tudo: meu sed no SunOS 5.7 =o)
pq sed rox =oD
vejam isso...
fnsomc{scadm}$ echo abcdefghi | sed 's/\(a\|b\)/x/'
abcdefghi
fnsomc{scadm}$ echo abcdefghi | sed 's/\(a\)/x/'
xbcdefghi
em um sed passado, cheguei a pensar que o sed num aceitava lista...
mas ae ele aceitou - tah certo que eh uma lista de um elemento soh -
mas eh lista, neh nao? ele parece que num reconhece o '\|'...
se alguem souber o pq disso... agradeço a explicação hehe
__________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. ______________________________________________________ _______
Rapaz, que pergunta mais vaga. No caso, você quer fazer o quê, por
exemplo, mais especificamente?
--
Luciano Espirito Santo
Santos, SP - Brasil
<-quote-> **************************************************
On 19/05/03 at 17:29, Mauricio B. C. Vieira wrote in 2K:
Assunto/Subject: [sed-br] Regex e-mail
>Alguém aqui já fez uma regex para tratar e-mail em sed?
********* END OF ORIGINAL MESSAGE *********</-quote->
Desculpe-me:
recebo um e-mail num script. quero checar se o e-mail é válido.
queria algo melhor do que : .+@.+
On Tue, May 20, 2003 at 07:56:37AM -0300, Luciano ES wrote:
> Rapaz, que pergunta mais vaga. No caso, você quer fazer o quê, por
> exemplo, mais especificamente?
>
> --
> Luciano Espirito Santo
> Santos, SP - Brasil
>
> <-quote-> **************************************************
> On 19/05/03 at 17:29, Mauricio B. C. Vieira wrote in 2K:
> Assunto/Subject: [sed-br] Regex e-mail
>
> >Alguém aqui já fez uma regex para tratar e-mail em sed?
>
--
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
Aaah, agora sim.
Eu conheço dois jeitos:
([A-Za-z0-9_.-]+)@([A-Za-z0-9_-]+)+\.[A-Za-z]{2,4}
e
([A-Za-z0-9_.-]+)@([A-Za-z0-9_-]+)+\.([A-Za-z]{2,4}|[A-Za-z]{6})
O segundo serve para casar o único domínio top-level de 6 letras que
eu conheço: .museum. Nunca vi com cinco letras, mas pode aparecer, daí
você usa
([A-Za-z0-9_.-]+)@([A-Za-z0-9_-]+)+\.[A-Za-z]{2,6}
Há quem diga que não há forma 100% segura de casar um endereço de
e-mail com ER, e que quem as usa para isso está se enganando.
Mas também tem gente que não acredita em duendes, pra você ver.
--
Luciano Espirito Santo
Santos, SP - Brasil
<-quote-> **************************************************
On 20/05/03 at 09:49, Mauricio B. C. Vieira wrote in 3K:
Assunto/Subject: Re: [sed-br] Re: Regex e-mail
> recebo um e-mail num script. quero checar se o e-mail é válido.
> queria algo melhor do que : .+@.+
********* END OF ORIGINAL MESSAGE *********</-quote->
aes,
--- Luciano ES <luc-groups@...> escreveu:
> Eu conheço dois jeitos:
> ([A-Za-z0-9_.-]+)@([A-Za-z0-9_-]+)+\.[A-Za-z]{2,4}
vem cá, pra que os grupos?
[A-Za-z0-9_.-]+@[A-Za-z0-9_-]+\.[A-Za-z]{2,4}
funciona igual. só que essa tua ER tem um pobreminha., ela não
casa foo@... porque depois da arroba você só deixou a
possibilidade de haver apenas um ponto .
pra arrumar é fácil, basta quantificar as letras e o ponto.
[A-Za-z0-9_.-]+@([A-Za-z0-9_-]+\.)+[A-Za-z]{2,4}
se o teu sed suportar bordas, é bom especificá-las também:
\<[A-Za-z0-9_.-]+@([A-Za-z0-9_-]+\.)+[A-Za-z]{2,4}\>
ou
\b[A-Za-z0-9_.-]+@([A-Za-z0-9_-]+\.)+[A-Za-z]{2,4}\b
> Há quem diga que não há forma 100% segura de casar um endereço de
> e-mail com ER, e que quem as usa para isso está se enganando.
é verdade :)
quer dizer, a ER acima pega a *maioria* dos emails reais válidos
que se usa normalmente. ( .museum? fala sééério ;)
mas *se* você seguir a RFC que define as formas válidas de e-mail,
você acaba com uma ER monstruosa igual a que tem no livro
Mastering Regular Expressions e tem mais de 6000 caracteres.
como é difícil achar malas que usam fulano@[200.234.123.012],
para fins práticos, a ER acima está completíssima.
> On 20/05/03 at 09:49, Mauricio B. C. Vieira wrote in 3K:
> > recebo um e-mail num script. quero checar se o e-mail é válido.
> > queria algo melhor do que : .+@.+
=====
--
ATENCAO: o www.verde666.org vai morrer, use www.aurelio.net
ATTENTION: www.verde666.org is no more, use www.aurelio.net
_______________________________________________________________________
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/
ae wilson,
On Wed, 21 May 2003, wilson wrote:
> Como posso incluir uma linha no final de um arquivo ??
>
> Estou tentando por este caminho ?
>
> sed -e '$a\wilson\' nomes.txt
quase.
$ cat lixo
linha 1
linha 2
linha 3
$ sed -e '$a\' -e 'teste' lixo
linha 1
linha 2
linha 3
teste
$ sed '$s/.*/&\
teste/' lixo
linha 1
linha 2
linha 3
teste
a mais elegante é a primeira solução.
falow
thobias
-------
echo 9446046325380026818553633794429812592304650P | dc
-------
http://www.lcp.coppe.ufrj.br/~thobias
____________________________
|
| Against - HTML Mail
| Against - MS ATTACHMENTS
|
----------------------------