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

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

Re: [shell-script] Buffer?


From: Fabiano Caixeta Duarte
Subject: Re: [shell-script] Buffer?
Date: Thu, 10 Apr 2008 20:28:37 -0300
User-agent: Thunderbird 2.0.0.0 (X11/20070326)

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]