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: Tiago Peczenyj
Subject: Re: [shell-script] Awk x Cut
Date: Fri, 27 Jul 2012 12:26:30 -0300

Ola

isso realmente é um pé no saco de fazer com awk. tem algumas mutretas.

por exemplo, vc pode apagar os campos $1 e $2 e imprimir a linha inteira
(vai criar espaços extra na frente)

{ $1=$2=""; print $0 }

ou vc pode usar um laço for (eca) e brincar com printf / print ou
concatenar em uma variavel

{for(i=2;i<=NF;i++) printf("%s",$i); print ""; }

Seria interessate se pudesse ser feito algo como $(2..10) mas não é
suportado.

2012/7/27 Robson Alexandre <address@hidden>

> **
>
>
> Aproveitando o questionamento pertinente, como faço
> cut -d" " -f3-
> para um número variável de campos no awk?
> Considerando o conhecimento da variável interna do awk NF number field.
> Att
> Robson Alexandre
> Em 27/07/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]
>
>  
>



-- 
Tiago B. Peczenyj
Linux User #405772

http://pacman.blog.br


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



reply via email to

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