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

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

Re: [shell-script] Re: Sort em conteudo da linha


From: Felipe Kellermann
Subject: Re: [shell-script] Re: Sort em conteudo da linha
Date: Sat, 19 Jul 2003 02:12:00 -0300 (BRT)

On Fri, 18 Jul 2003 5:09pm  -0000, César A. K. Grossmann wrote:

> > > 1
> > > 3       9
> >
> >     Esqueci de comentar, aqui é com xpg_echo, na bash,
>
> Fiquei devendo tudo.
>

        Como? Eu fiquei devendo, não? :-)
        De fato estava meio apressado, devo desculpas.


> Por quê o tsort?
>

        O tsort faz o que queremos? Não. Ou talvez sim, veja:
$ echo "9 8 7 6 5 4 3 2 1 0"|tsort|paste -sd' '
1 3 5 7 9 0 2 4 6 8

        O mais legal aqui é que nós não precisamos nos preocupar com os
modos em que os campos estavam delimitados, eles vão ser separados, mesmo
que estejam separados por \ espaço, \tab ou \novalinha. Mesmo assim, este
não é o "objetivo" do tsort (info coreutils para mais informações) e uma
ordenação foi feita e apresentada. Pegando os campos, o tsort basicamente
monta uma árvore binária, aquela saída é um caminhamento infixado em uma
árvore de busca, que foi montada, portanto já está ordenado. Poderíamos
usar esta saída mesmo, lendo da forma correta os dados: mas já que as
informações foram passadas para uma forma que o sort pode ler, e o nosso
objetivo na discussão era justamente este, passamos para o sort. E sort
não usa qsort? Se bem me lembro, esses dados também acabam sendo muito
apropriados para um quicksort -- até por isto usei o -s no sort. Aqui é
mais dedução, nunca cheguei a olhar melhor, talvez alguém da lista possa
corrigir ou confirmar. Os dados sobre o tsort estão um pouco incompletos,
mas a idéia é esta, para retornar"M-bM-d"ficar no escopo da lista. Então,
mesmo que não seja exatamente este o objetivo, usei para fazer a minha
formatação e ainda uma ordenação. Mais informações sobre o assunto podem
ser facilmente encontradas em sites de cursos de ciência da computação.


> Que história é esta de xpg_echo?
>

        Para mostrar que o tsort formataria os campos " \t\n", fiz aquela
atribuição e saída com espaço, tabulação e quebra de linha. Normalmente as
pessoas usam 'echo -e "..."' para as seqüências escapadas serem válidas. A
bash a partir da versão 2.04 tem a opção xpg_echo, que é para fazer o echo
funcionar como deveria: SUS, exatamente como qualquer outra shell faz, ler
as seqüencias escapadas normalmente.

        Eu não sei o motivo de não ser default. Para mim é o mais comum.
        Ou eu faço um alias e uso 'echo' e '\echo' ou "ligo" a opção.

        Beleza?

-- 
Felipe Kellermann


reply via email to

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