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

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

Re: [shell-script] Trocando a linha de cima pelas de baixo - compartilha


From: Edjunior Machado
Subject: Re: [shell-script] Trocando a linha de cima pelas de baixo - compartilhando solucao
Date: Thu, 11 Oct 2007 10:42:29 -0300

Hey Ivan,

falha minha.

Na verdade, pensei que seu algoritmo fazia exatamente a função do tac,
ao invés inverter a ordem das linhas 2 a 2.

hasta!

jr.

On 10/11/07, Eduardo Jaime Quiros Batres <address@hidden> wrote:
> usa o tac (inverso do cat)
>
> Em Qui 11 Out 2007, Ivan lopes escreveu:
> > problema:
> >
> > entrada:
> > A
> > B
> > A
> > B
> > A
> > B
> >
> > saida desejada:
> > B
> > A
> > B
> > A
> > B
> > A
> >
> > eu tive o problema a cima ... e a solucao foi usar o sed ...
> >
> > $ echo -e "A\nB\nA\nB\nA\nB"| sed -n 'h;n;G;p'
> >
> > todavia, as opcoes do sed me pareceram muito obscuras
> > pois eu nao entendia esse tal de `n` hide  e `n` next.
> >
> > ai eu resolvi dar uma lida, por ai e agora vejo que o sed eh
> > um cara muito simples ...
> >
> > E VOU COMPARTILHAR COM VCS ESSAS OBSERVACOES
> >
> > vejamos:
> > substituindo  as opcoes de linha por um arquivo com as mesmas
> >
> > 'h;n;G;p' virou  troca.sed
> >
> > $ cat troca.sed
> >
> > h
> > # esconde a linha no buffer
> > # buffer <= linha(atual)
> >
> > n
> > # proxima linha
> > # atual++
> >
> > G
> > # saida  = saida + buffer + linha(atual)
> >
> > p
> > # imprima a saida.
> >
> > Tah sei que parece loucura ...
> > mas veja dessa forma:
> >
> > em uma pseudo linguagem ... teriamos
> >
> > saida  = empty
> > buffer = empty
> >
> > atual = 1;
> > while (atual <= NumeroDeLinhasDoPipe) {
> >       buffer = linha(atual)
> >         atual ++
> >       saida  = saida + buffer + linha(atual)
> >       atual ++
> > }
> > imprima saida
> >
> > FIM ...
> >
> > CLARO QUE DA FORMA ABAIXO EH MELHOR .... E CORRETA!!!
> >
> > while (atual <= NumeroDeLinhasDoPipe) {
> >       buffer = linha(atual)
> >       saida  = saida + buffer + linha(atual)
> >       atual +=2
> > }
> >
> > vlw
>
>
>
> --
> Eduardo Jaime Quiros Batres (address@hidden)
> --
> "Parte da ausência de humanidade do computador deve-se a que,
> competentemente programado e trabalhado bem, é completamente
> honesto."
> Isaac Asimov (1920-1992)
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como 
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
>
> Links do Yahoo! Grupos
>
>
>


reply via email to

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