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

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

Re: [shell-script] Buffer?


From: Ricardo Brito do Nascimento
Subject: Re: [shell-script] Buffer?
Date: Fri, 11 Apr 2008 08:37:37 -0300
User-agent: Thunderbird 2.0.0.5 (X11/20070719)

Bom dia!
Quem pode traduzir esta solução?
sed 'x;n;N;N;x;N;G' x.txt

------------------------------------------------------------------------
Ninguém há semelhante a ti, ó Senhor; tu és grande, e grande o poder do teu nome. (1ªJeremias 10.6) No one is like you, O Lord; you are great, and your name is mighty in power. (1ªJeremiah 10.6)
 Jesus te ama, aceite-O!   Jesus loves you, accept you Him!



Fabiano Caixeta Duarte escreveu:

Eduardo escreveu:
> node1:~# cat x.txt
>
> <INCLUIR>
> ..CLASSE:MS
> -MANDADO
> -8901223244
> ..ID_DOCUMENTO:22
> <INCLUIR>
> ..CLASSE:MS
> -MANDADO
> -8901223245
> ..ID_DOCUMENTO:23
> <INCLUIR>
> ..CLASSE:MS
> -MANDADO
> -8901223246
> ..ID_DOCUMENTO:24
> <INCLUIR>
> ..CLASSE:MS
> -MANDADO
> -8901223247
> ..ID_DOCUMENTO:25
> <INCLUIR>
> ..CLASSE:MS
> -MANDADO
> -8901223248
> ..ID_DOCUMENTO:26
> <INCLUIR>
> ..CLASSE:MS
> -MANDADO
> -8901223249
> ..ID_DOCUMENTO:27
>
> e deveria ficar assim:
>
> node1:~# cat y.txt
>
> <INCLUIR>
> ..ID_DOCUMENTO:22
> ..CLASSE:MS
> -MANDADO
> -8901223244
> <INCLUIR>
> ..ID_DOCUMENTO:23
> ..CLASSE:MS
> -MANDADO
> -8901223245
> <INCLUIR>
> ..ID_DOCUMENTO:24
> ..CLASSE:MS
> -MANDADO
> -8901223246
> <INCLUIR>
> ..ID_DOCUMENTO:25
> ..CLASSE:MS
> -MANDADO
> -8901223247
> <INCLUIR>
> ..ID_DOCUMENTO:26
> ..CLASSE:MS
> -MANDADO
> -8901223248
> <INCLUIR>
> ..ID_DOCUMENTO:27
> ..CLASSE:MS
> -MANDADO
> -8901223249

Estou acompanhando esta thread e vi a solução do Flávio. Muito legal.
Nunca fiz nada em ed. Entretanto, fiz uma solução com sed que também
serviu de aprendizado.

sed 'x;n;N;N;x;N;G' x.txt

Basicamente tem a ver com manipulação do que o sed chama de pattern
space e hold space.

Quanto à performance, segue um teste com arquivos de 1.7Mb (143998 linhas)

$ time ed x.txt <<<$'g/^\.\.ID_DOC/m.-4\nw\nq'
1098000
1098000

real 0m4.627s
user 0m4.560s
sys 0m0.036s

$ time sed -i 'x;n;N;N;x;N;G' x.txt

real 0m0.282s
user 0m0.228s
sys 0m0.052s

--
Fabiano Caixeta Duarte
Especialista em Redes de Computadores
Linux User #195299
Ribeirão Preto - SP




reply via email to

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