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

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

Re: [shell-script] Re: Melhoramento do script


From: Julio C. Neves
Subject: Re: [shell-script] Re: Melhoramento do script
Date: Wed, 12 Jan 2011 10:14:31 -0200

Dá uma olhadinha e veja se o tempo melhora:

$ sed 's/.* //' arquivo | tr '\n' ' '; echo

Como o * é guloso, o sed vai trocar tudo até o último espaço em branco por
nada, o tr troca os salto de linha (LF) por espaços e o último echo é para
quebrar a linha após o tr.

Creio que isso seja mais rápido.

Abraços,

Julio

*Cursos de Shell ou Zenity em fins de semana?*

*☎ Ligue (21) 8112-9988* ☎


Em 12 de janeiro de 2011 08:59, Jonathan Lessa
<address@hidden>escreveu:

> melhora um pouco se deixar de utilizar o cat
>
>
> $ time cat /var/log/squid/access.log | awk '{print $NF}' | tr '\n' ' ' |
> awk
> '{print $0}' > result1.txt
>
> real    0m1.877s
> user    0m2.777s
> sys     0m0.696s
>
>
> $ time awk '{print $NF}' /var/log/squid/access.log | tr '\n' ' ' | awk
> '{print $0}' > result1.txt
>
> real    0m1.543s
> user    0m2.546s
> sys     0m0.338s
>
>
> $ time rev /var/log/squid/access.log | cut -f 1 -d " " | rev | tr '\n' ' '
> >
> result2.txt
>
> real    0m7.726s
> user    0m11.946s
> sys     0m0.289s
>
>
> Em 11 de janeiro de 2011 17:44, Cristiano <address@hidden> escreveu:
>
> >
> >
> >
> >
> > --- Em address@hidden <shell-script%
> 40yahoogrupos.com.br>,
> > "M. Rodrigo Monteiro" <falecom@...> escreveu
> > >
> > > Caros,
> > >
> > > Tenho esse one-liner abaixo:
> > >
> > > echo -e "linha 01\nlinha 02" | awk '{print $NF}' | tr '\n' ' ' | awk
> > > '{print $0}'
> > >
> > > Estou dando um exemplo genérico. O que eu queria fazer é o seguinte:
> > > pegar em um arquivo o ultimo campo (número de campos variáveis) e
> > > juntá-los em uma única linha separados por espaços em branco.
> > > Existe alguma forma mais simples/rápida?
> >
> > Eu pensei em usar o rev.
> >
> > Algo assim:
> >
> > rev /var/log/squid/access.log | cut -f 1 -d " " | rev | tr '\n' ' '
> >
> > Mas não fez muita diferença:
> >
> > root@mga0-fwall-dsl:/tmp> time cat /var/log/squid/access.log | awk
> '{print
> > $NF}' | tr '\n' ' ' | awk '{print $0}' > result1.txt
> >
> > real 0m4.569s
> > user 0m1.940s
> > sys 0m0.420s
> > root@mga0-fwall-dsl:/tmp> time rev /var/log/squid/access.log | cut -f 1
> -d
> > " " | rev | tr '\n' ' ' > result2.txt
> >
> > real 0m3.997s
> > user 0m3.132s
> > sys 0m0.336s
> >
> > Meu access.log tem 536518 linhas e 71 megas.
> >
> > Só não entendi a razão do útimo awk. Parando no tr não resolve seu
> > problema?
> >
> >
> >
>
>
> [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]



reply via email to

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