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

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

Re: [shell-script] Awk x Cut


From: Julio C. Neves
Subject: Re: [shell-script] Awk x Cut
Date: Sun, 29 Jul 2012 18:25:04 -0300

Realmente é o que penso qdo uma pessoa para imprimir o 4o. campo de um
arquivo super bem comportado e pequeno, como o /etc/passwd, usa o awk. Isso
é matar uma mosca com um tiro de canhão.

O awk além de ser uma linguagem completa e por isso muito grande, ele dá
uma pré compilada no código (vc jamais verá um erro de execução no meio de
um código awk, pois não passaria nessa pré compilação). Então:

Carregar código grande + tempo para pré compilação = baixa performance

Não digo que o awk não presta. Digo que ele não deve ser usado para essas
coisas corriqueiras e em arquivos pequenos. Para isso existe o cut.

E tb não esqueçam que o sed tem um papel similar ao awk!

Abcs,
Julio

*
*



Em 27 de julho de 2012 09:31, Daniel Leomil <address@hidden> escreveu:

> **
>
>
> Como diria nosso amigo Julio Cesar Neves, pra que vc chamaria um canhão pra
> matar um formiga...kkk
>
> --
>
> Att,
>
> Daniel Leomil
>
> Em 27 de julho de 2012 09:25, Tiago Peczenyj <address@hidden
> >escreveu:
>
>
> > Ola
> >
> > o awk tem uma vantagem que é vc ter campos separados por um ou mais
> > caracteres separadores, por exemplo:
> >
> > prompt $ cat xxx
> > a b
> > a c
> > a d
> > prompt$ cut -d' ' -f2 xxx
> > b
> >
> >
> > prompt$ awk '{print $2}' xxx
> > b
> > c
> > d
> >
> > no caso do cut ele é exato: vai trazer o segundo campo separado por UM
> > caracter espaço. em tese ele deveria ser mais rapido que o awk por ter
> > menos overhead (afinal vc só quer imprimir uma parte do stream de dados,
> > não quer lidar com arrays, funções, loops, expressões regulares, etc)
> MAS a
> > diferença é irisória para arquivos pequenos. Para arquivos maiores talvez
> > nem awk nem cut resolvam.
> >
> > Agora é muito comum vc ter uma expressão grande envolvendo cut, grep,
> etc,
> > e varios pipes, que poderiam ser feitos com um unico awk. nesses casos a
> > vantagem é vc ter menos processos e menos overhead de sincronizar I/O
> entre
> > os processos se tudo estiver dentro do mesmo awk, por exemplo.
> >
> > 2012/7/27 Petterson Faria <address@hidden>
> >
> > > **
> > >
> > >
> > > Bom nunca fiz nenhum teste profundo comparando os dois recursos.
> > > Existe uma diferença grande de desempenho entre os dois?
> > >
> > > $ time du -sh ~/Downloads/|cut -f1
> > > real 0m0.118s
> > > user 0m0.028s
> > > sys 0m0.088s
> > >
> > > $ time du -sh ~/Downloads/|awk '{print $1}'
> > > real 0m0.120s
> > > user 0m0.016s
> > > sys 0m0.104s
> > >
> > > Pensei no tempo de processamento ser afetado pelo cache do processador,
> > > então melhor perguntar à quem já teve alguma experiência com isso.
> > >
> > > --
> > > Atenciosamente,
> > > *Petterson Faria*
> > >
> > > *"*Where there is a shell there is a way" (UNIX)
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> >
> >
> > --
> > Tiago B. Peczenyj
> > Linux User #405772
> >
> > http://pacman.blog.br
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> > ------------------------------------
> >
> > ----------------------------------------------------------
> > 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
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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