Bom dia.. Então Fabiano, eu tambem não entendi muito a ideia da linha (até entendi os comandos, mas o "algoritmo" que nao entendi)...
E veja, ele acaba replicando todas as linhas do intervalo: lazlo:~# cat x > <INCLUIR> > ..CLASSE:MS > -MANDADO > -8901223244 > ..ID_DOCUMENTO:22 > <INCLUIR> > ..CLASSE:MS > -MANDADO > -8901223245 > ..ID_DOCUMENTO:23 > <INCLUIR> > ..CLASSE:MS > -MANDADO > -8901223246 > ..ID_DOCUMENTO:24 lazlo:~# sed 'x;n;N;N;x;N;G' x > <INCLUIR> > ..ID_DOCUMENTO:22 > ..CLASSE:MS > -MANDADO > -8901223244 > ..CLASSE:MS > -MANDADO > -8901223244 > <INCLUIR> > ..ID_DOCUMENTO:23 > ..CLASSE:MS > -MANDADO > -8901223245 > ..CLASSE:MS > -MANDADO > -8901223245 > <INCLUIR> > ..ID_DOCUMENTO:24 > ..CLASSE:MS > -MANDADO > -8901223246 lazlo:~# Quanto a performance, entre o sed e o ed o sed sempre vai levar vantagem, devido a ser um editor de fluxo contra um editor de arquivos. Aproveita e explica pra gente esse sed ai ;) -- Flávio do Carmo Junior 2008/4/11 Eduardo <[EMAIL PROTECTED]>: > > > > > > > Fabiano, > > eu não entendi a sua solução. > E ela também não funcionou. :) > > 2008/4/10 Fabiano Caixeta Duarte <[EMAIL PROTECTED]>: > > > > > 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 > > > > > > [As partes desta mensagem que não continham texto foram removidas] > >
