gildot

Topo
Sobre
FAQ
Tópicos
Autores
Preferências
Artigos
Sondagens
Propor artigo


8/3
gildicas
9/30
jobs
10/9
perguntas
10/25
press

 
Sorting files with sort and tsort
Contribuído por scorpio em 12-03-03 21:57
do departamento a-receita-de-hoje...
Linux Johnny escreve "Although it is possible to write advanced sorting applications in Perl or Awk, doing so may not always be necessary -- and is often a pain. Save time and headaches by using sort and tsort -- instead of resorting to more complex solutions utilizing Perl or Awk. This article explains how. "

Para a menina Wired... | IT jobs in PT  >

 

gildot Login
Login:

Password:

Referências
  • Linux
  • article
  • Mais acerca Linux
  • Também por scorpio
  • Esta discussão foi arquivada. Não se pode acrescentar nenhum comentário.
    Perl!?? Awk!?! (Pontos:2)
    por mvalente em 12-03-03 22:19 GMT (#1)
    (Utilizador Info) http://www.ruido-visual.pt/
    Perl e awk ?!!?

    Na shell, para alem dos basicos cd, cp, mv, more e quejandos, so' e' preciso saber bem 5 comandos: cut, grep, sort, tr e uniq. "Mai nada"! :-)

    Cumprimentos

    Mario Valente

    Re:Perl!?? Awk!?! (Pontos:2)
    por cgd em 13-03-03 12:07 GMT (#4)
    (Utilizador Info)

    Quase todos esses comandos podem ser escritos em awk ou sed, em poucas linhas. Já para não meter perl ou python ao barulho.

    cat cut ls sort (python) sort (sed) strings tail uniq -d uniq -u uniq wc

    Pus lá mais algum lixo em awk (o directório faz autolistagem dos ficheiros).

    Acho que da tua lista nunca fiz o tr! Mas é um dos mais fáceis. O grep nem se fala: grep x = awk '/x/'


    -- carlos

    Querias o FP... (was: Perl!?? Awk!?!) (Pontos:1)
    por lbruno em 13-03-03 12:12 GMT (#5)
    (Utilizador Info) http://www.panix.com/~tbetz/boulder.shtml
    alem dos basicos cd, cp, mv, more e quejandos, so' e' preciso saber bem 5 comandos: cut, grep, sort, tr e uniq.


    "saber BEM". Mas nao sao os unicos que deves saber.

    "Mai nada"! :-)


    E este comando?

    sed -e 's,X,Y,'


    Tenho utilizado constantemente comandos semelhantes. Sem duvida reconheces que a utilidade do sed.

    cat file | awk -F' ' '/^Name:/ { print $2 }'


    Este comand e' equivalente a:

    cat file | grep '^Name:' | cut -d' ' -f 2


    Com a diferenca que so' usas um utilitario e tens mais potencialidades com o awk.
    Re:Querias o FP... (was: Perl!?? Awk!?!) (Pontos:2)
    por cgd em 13-03-03 12:39 GMT (#7)
    (Utilizador Info)

    cat file | awk -F' ' '/^Name:/ { print $2 }

    Mas se for: awk '$5>10000&&$5<20000 { print $NF }' ja nao tens substituto. Este caso, é para se usar à frente de um ls -al para ver quais os ficheiros com mais de 10000 e menos de 20000. Bom, por acaso podia-se usar o find com dois -size's seguidos.


    -- carlos

    Re:Perl!?? Awk!?! (Pontos:2, Informativo)
    por cgd em 13-03-03 11:43 GMT (#3)
    (Utilizador Info)

    considero o sed e o awk igualmente fundamentais

    Numa thread atrás falava-se de unidades (as in: unidades físicas). As unidades *fundamentais* são aquelas a partir das quais se derivam todas as outras.

    No caso de unix, pode-se mesmo dizer que uma pequena linguagem de scr1pting é uma espécie de comando fundamental. Perl, python, java não contam porque são demasiado overkill. Mas sed e awk podem ser considerados de facto fundamentais, dado que podes reescrever a maior parte dos tipicos utilitarios de shell com esses comandos.

    Uma outra linguagem de scr1pting muito interessante, pequena e genérica, mas que não é standard em unix, é a Lua (feita por um brasileiro). Muitas distribuições linux one-floppy colocam o interpretador, que é um pequeno binário, e emulam a maior parte dos comandos em scr1pts lua.


    -- carlos

    tsort (Pontos:2)
    por cgd em 13-03-03 12:26 GMT (#6)
    (Utilizador Info)

    O artigo era um pouco básico. Sobre o tsort, praticamente nem falava. Um erro é pensar que o sort está relacionado com o tsort só porque aparece lá "sort" algures no nome.

    Topological sort tem mais a ver com grafos e caminhos , que com outra coisa.

    Uma utilizacao muito util :-) é ordenar (daí o sort) tópicos por referencia mutua. Por exemplo, se escrevermos um livro, ou um paper ou um relatorio whatever, com vários capitulos. Estabelecemos a lista:
    1 3 4 5 6
    2 6 7
    3 7

    etc... que significa: o capitulo 1 faz referencia ao 3 4 5 e 6, o 2 refere o 6 e o 7, o 3 refere o 7. Depois aplica-se tsort a este ficheiro e obtemos a melhor ordem onde não existam backward references (ou estejam minimizadas). A ideia é, quando alguem ler o texto, nao ter que voltar muitas vezes para trás.


    -- carlos

     

     

    [ Topo | Sugerir artigo | Artigos anteriores | Sondagens passadas | FAQ | Editores | Preferências | Contacto ]